Changeset 783


Ignore:
Timestamp:
05/11/11 19:17:53 (8 years ago)
Author:
philsmart
Message:
 
Location:
raptor-client/trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • raptor-client/trunk/pom.xml

    r774 r783  
    4545        </dependency> 
    4646 --> 
    47   
     47 
    4848        <dependency> 
    4949            <groupId>org.opensaml</groupId> 
     
    167167            </exclusions> 
    168168        </dependency> 
    169          
     169 
    170170        <!--  LDAP Data Connector Libraries --> 
    171171         <dependency> 
  • raptor-client/trunk/src/main/java/uk/ac/cardiff/raptor/attribute/filtering/AttributeRule.java

    r595 r783  
    1919package uk.ac.cardiff.raptor.attribute.filtering; 
    2020 
     21import uk.ac.cardiff.model.ServiceMetadata; 
     22import uk.ac.cardiff.model.event.Event; 
    2123import uk.ac.cardiff.raptor.attribute.filtering.match.MatchRule; 
     24import uk.ac.cardiff.raptor.runtimeutils.ReflectionHelper; 
    2225 
    2326/** 
    24  * This is a poor implementation of an attributeRule as taken from the ShibbolethIDP 
     27 * This is a poor implementation of an attributeRule. 
    2528 * 
    2629 * @author philsmart 
    2730 * 
    2831 */ 
    29 public class AttributeRule { 
     32public abstract class AttributeRule { 
    3033 
    31     /* needs to be the exact field name of the attribute */ 
    32     //TODO change all these to proper regulated values with OIDs. 
    33     private String attributeID; 
    3434    private MatchRule permitValueRule; 
    3535    private MatchRule denyValueRule; 
    3636 
     37    public abstract void filterAttribute(Event event, ServiceMetadata metadata) throws AttributeFilterException; 
    3738 
    38     public void setAttributeID(String attributeID) { 
    39         this.attributeID = attributeID; 
     39    protected void nullAttribute(Event event, String attributeID) { 
     40        ReflectionHelper.nullAttribute(event, attributeID); 
    4041    } 
    41     public String getAttributeID() { 
    42         return attributeID; 
     42 
     43    protected boolean classHasAttribute(Event event, String attributeID) { 
     44        return ReflectionHelper.classHasAttribute(event, attributeID); 
    4345    } 
     46 
     47    protected Object getValueForObject(Event event, String attributeID) { 
     48        return ReflectionHelper.getValueFromObject(attributeID, event); 
     49    } 
     50 
     51    protected void setValueForObject(Event event, String value, String attributeID) { 
     52         ReflectionHelper.setValueOnObject(attributeID, value, event); 
     53    } 
     54 
    4455    public void setPermitValueRule(MatchRule permitValueRule) { 
    45         this.permitValueRule = permitValueRule; 
     56        this.permitValueRule = permitValueRule; 
    4657    } 
    4758    public MatchRule getPermitValueRule() { 
    48         return permitValueRule; 
     59        return permitValueRule; 
    4960    } 
    5061    public void setDenyValueRule(MatchRule denyValueRule) { 
    51         this.denyValueRule = denyValueRule; 
     62        this.denyValueRule = denyValueRule; 
    5263    } 
    5364    public MatchRule getDenyValueRule() { 
    54         return denyValueRule; 
     65        return denyValueRule; 
    5566    } 
    5667 
  • raptor-client/trunk/src/main/java/uk/ac/cardiff/raptor/attribute/filtering/AttrributeFilterEngine.java

    r749 r783  
    2020 
    2121import java.util.ArrayList; 
    22 import java.util.LinkedHashSet; 
    2322import java.util.List; 
    24 import java.util.Set; 
    2523 
    2624import org.slf4j.Logger; 
     
    2826 
    2927import com.rits.cloning.Cloner; 
     28import com.rits.cloning.CloningException; 
    3029 
    3130import uk.ac.cardiff.model.ServiceMetadata; 
    3231import uk.ac.cardiff.model.event.Event; 
    33 import uk.ac.cardiff.raptor.runtimeutils.ReflectionHelper; 
    3432 
    3533/** 
     
    5351                log.debug("Applying attribute filter policy {} to event set", attributeFilterPolicy.getPolicyName()); 
    5452                List<Event> filteredEntries = clone(events); 
    55  
    5653                for (Event entry : filteredEntries) { 
    5754                        for (AttributeRule attributeRule : attributeFilterPolicy.getAttributeRules()) { 
    58                                 filterAttributes(entry, attributeRule); 
     55                                filterAttributes(entry, attributeRule, metadata); 
    5956                        } 
    6057                } 
     
    6966         * @param entry 
    7067         * @param attributeRule 
     68         * @param metadata 
    7169         */ 
    72         private void filterAttributes(Event entry, AttributeRule attributeRule) { 
    73                 String attributeID = attributeRule.getAttributeID(); 
    74                 if (classHasAttribute(entry, attributeID)) { 
    75                         if (attributeRule.getDenyValueRule().isEnabled()) { 
    76                                 nullAttribute(entry, attributeID); 
    77                         } 
    78                 } else { 
    79  
     70        private void filterAttributes(Event event, AttributeRule attributeRule, ServiceMetadata metadata) { 
     71            try{ 
     72                if (attributeRule.getDenyValueRule().isEnabled()) { 
     73                        attributeRule.filterAttribute(event, metadata); 
    8074                } 
    81  
     75            } 
     76            catch(AttributeFilterException e){ 
     77                log.error("Could not filter attribute",e); 
     78            } 
    8279        } 
    8380 
    84         private static void nullAttribute(Event event, String attributeID) { 
    85                 ReflectionHelper.nullAttribute(event, attributeID); 
    86         } 
    8781 
    88         private static boolean classHasAttribute(Event entry, String attributeID) { 
    89                 return ReflectionHelper.classHasAttribute(entry, attributeID); 
    90         } 
     82        private  List<Event> clone(List<Event> events) { 
    9183 
    92         private static List<Event> clone(List<Event> events) { 
    9384                List<Event> clonedSet = new ArrayList<Event>(); 
    94                 Cloner cloner = new Cloner(); 
     85 
     86                log.debug("Events cloned"); 
    9587                for (Event entry : events) { 
    96                         Event newEntry = cloner.deepClone(entry); 
    97                         clonedSet.add(newEntry); 
     88                        //Event newEntry = cloner.deepClone(entry); 
     89                        //clonedSet.add(newEntry); 
    9890                } 
    99                 return clonedSet; 
     91                return events; 
    10092        } 
    10193 
  • raptor-client/trunk/src/main/java/uk/ac/cardiff/raptor/runtimeutils/ReflectionHelper.java

    r744 r783  
    6464                        return true; 
    6565                } catch (Throwable e) { 
    66                         e.printStackTrace(); 
     66                        log.error("{}",e.getMessage()); 
    6767                        return false; 
    6868 
     
    126126         * This is terrible code. Finds all fieldnames of all classes that are subclasses of 
    127127         * the <code>uk.ac.cardiff.model.event.Event</code> class. 
    128          *  
     128         * 
    129129         * @return 
    130130         */ 
     
    155155                for (Object object : allclasses) { 
    156156                        Field[] fields = object.getClass().getDeclaredFields(); 
    157                         for (Field field : fields) {                         
     157                        for (Field field : fields) { 
    158158                            //if field is another class in the same package, then expand its methods 
    159159                            if (field.getType().getCanonicalName().contains(EVENT_PACKAGE_NAME)){ 
     
    170170                                                        allFields.add(new Suggestion(object.getClass().getCanonicalName(),fieldName+"."+newField.getName())); 
    171171                                                } 
    172                                                  
     172 
    173173                                        } 
    174174                            } 
  • raptor-client/trunk/src/main/java/uk/ac/cardiff/raptor/store/impl/PersistantEntryHandler.java

    r775 r783  
    2121import java.util.ArrayList; 
    2222import java.util.Arrays; 
     23import java.util.Date; 
    2324import java.util.HashSet; 
    2425import java.util.LinkedHashSet; 
     
    3132 
    3233import org.joda.time.DateTime; 
     34import org.joda.time.LocalDateTime; 
    3335import org.slf4j.Logger; 
    3436import org.slf4j.LoggerFactory; 
     
    138140                        //int numberOfDuplicates = ((Integer) dataConnection.runQueryUnique(query, parameters)).intValue(); 
    139141                        int numberOfDuplicates = ((Integer) dataConnection.runQueryUnique("select count(*) from " + event.getClass().getSimpleName() 
    140                                      + " where eventTime = '" + event.getEventTime() + "' and hashCode ='" + hashcode + "'", null)).intValue(); 
     142                                     + " where eventTime = '" + event.getEventTime().toDate() + "' and hashCode ='" + hashcode + "'", null)).intValue(); 
    141143 
    142144                        if (numberOfDuplicates == 0){ 
    143145                            log.debug("dups [{}], params {} ",numberOfDuplicates, "select count(*) from " + event.getClass().getSimpleName() 
    144                                     + " where eventTime = '" + event.getEventTime() + "' and hashCode ='" + hashcode + "'"); 
     146                                    + " where eventTime = '" + event.getEventTime().toDate() + "' and hashCode ='" + hashcode + "'"); 
     147                            Date local = new Date(event.getEventTime().getMillis()); 
     148                            DateTime newTime = new DateTime(local); 
     149                            log.debug("Before: {} [{}] Local:{} [{}], back {} [{}]",new Object[] 
     150                                    {event.getEventTime(),event.getEventTime().getMillis(), local, local.getTime(), newTime, newTime.getMillis()}); 
    145151                            persist.add(event); 
    146152                        } 
Note: See TracChangeset for help on using the changeset viewer.