From: <fc...@us...> - 2008-02-20 16:04:49
|
Revision: 668 http://openutils.svn.sourceforge.net/openutils/?rev=668&view=rev Author: fcarone Date: 2008-02-20 08:04:43 -0800 (Wed, 20 Feb 2008) Log Message: ----------- SecurityRuleUtils moved to the utils package Modified Paths: -------------- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java Added Paths: ----------- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/utils/ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java Removed Paths: ------------- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleUtils.java Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java 2008-02-20 15:55:57 UTC (rev 667) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleAccessDecisionVoter.java 2008-02-20 16:04:43 UTC (rev 668) @@ -16,6 +16,7 @@ package it.openutils.hibernate.security.filter; import it.openutils.hibernate.security.dataobject.SecurityRule; +import it.openutils.hibernate.security.filter.utils.SecurityRuleUtils; import it.openutils.hibernate.security.services.SecurityRuleManager; import java.util.List; Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java 2008-02-20 15:55:57 UTC (rev 667) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRulePredicate.java 2008-02-20 16:04:43 UTC (rev 668) @@ -4,6 +4,7 @@ package it.openutils.hibernate.security.filter; import it.openutils.hibernate.security.dataobject.SecurityRule; +import it.openutils.hibernate.security.filter.utils.SecurityRuleUtils; import it.openutils.hibernate.security.services.SecurityRuleManager; import java.util.List; Deleted: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleUtils.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleUtils.java 2008-02-20 15:55:57 UTC (rev 667) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleUtils.java 2008-02-20 16:04:43 UTC (rev 668) @@ -1,144 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.hibernate.security.filter; - -import it.openutils.hibernate.security.dataobject.PermissionEnum; -import it.openutils.hibernate.security.dataobject.SecurityRule; - -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.acegisecurity.Authentication; -import org.acegisecurity.ConfigAttribute; -import org.acegisecurity.ConfigAttributeDefinition; -import org.acegisecurity.GrantedAuthority; -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * @author fcarone - * @version $Id: $ - */ -public class SecurityRuleUtils -{ - /** - * Logger. - */ - private Logger log = LoggerFactory.getLogger(SecurityRuleUtils.class); - - /** - * @param rules The list of rules to check - * @param config The config attribute to check the rules against - * @return True if any of the rules matches the given config attribute, false otherwise. - */ - @SuppressWarnings("unchecked") - public boolean checkPermissions(List<SecurityRule> rules, ConfigAttributeDefinition config) - { - log.debug("Evaluation permissions"); - Iterator iterator = config.getConfigAttributes(); - while (iterator.hasNext()) - { - String attribute = ((ConfigAttribute) iterator.next()).getAttribute(); - for (SecurityRule rule : rules) - { - for (PermissionEnum permission : rule.getPermissions()) - { - if (StringUtils.equals(permission.getValue(), attribute)) - { - log.debug("Matching permission: {}", permission.getValue()); - return true; - } - } - } - } - log.debug("No matching permissions found."); - return false; - } - - /** - * @param rules The list of rules to check - * @param argument The object to check the rules against - * @return True if any of the rules matches the given object, false otherwise. - */ - public boolean checkRules(List<SecurityRule> rules, Object argument) - { - log.debug("Evaluating rules."); - try - { - for (SecurityRule rule : rules) - { - String objProperty = BeanUtils.getSimpleProperty(argument, rule.getProperty()); - switch (rule.getModifier()) - { - case EQUALS: - if (StringUtils.equals(objProperty, rule.getValue())) - { - log.debug("Matching rule found: {}", rule); - return true; - } - break; - case NOT: - if (!StringUtils.equals(objProperty, rule.getValue())) - { - log.debug("Matching rule found: {}", rule); - return true; - } - break; - default: - throw new RuntimeException("Modifier " + rule.getModifier() + " is not recognized"); - } - } - } - catch (NoSuchMethodException e) - { - log.error("{}", e); - } - catch (IllegalAccessException e) - { - log.error("{}", e); - } - catch (InvocationTargetException e) - { - log.error("{}", e); - } - log.debug("No matching rules found."); - return false; - } - - - /** - * @param authentication The authentication method - * @return The collection of roles contained in the authentication - */ - public List<String> getRolesFromAuthentication(Authentication authentication) - { - List<String> roles = new ArrayList<String>(); - for (GrantedAuthority authority : authentication.getAuthorities()) - { - log.debug("Granted authority for user {}: {}", authentication.getName(), authority.getAuthority()); - roles.add(authority.getAuthority()); - } - return roles; - } - - - /** - * @param object The object to get the name from - * @return The object name - */ - public String getClassName(Object object) - { - // is this class a CGLib proxy? - if (StringUtils.contains(object.getClass().getName(), "$$")) - { - return StringUtils.substringBefore(object.getClass().getName(), "$$"); - } - return object.getClass().getName(); - } -} Copied: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java (from rev 667, trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/SecurityRuleUtils.java) =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java (rev 0) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/filter/utils/SecurityRuleUtils.java 2008-02-20 16:04:43 UTC (rev 668) @@ -0,0 +1,144 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.hibernate.security.filter.utils; + +import it.openutils.hibernate.security.dataobject.PermissionEnum; +import it.openutils.hibernate.security.dataobject.SecurityRule; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.acegisecurity.Authentication; +import org.acegisecurity.ConfigAttribute; +import org.acegisecurity.ConfigAttributeDefinition; +import org.acegisecurity.GrantedAuthority; +import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * @author fcarone + * @version $Id: $ + */ +public class SecurityRuleUtils +{ + /** + * Logger. + */ + private Logger log = LoggerFactory.getLogger(SecurityRuleUtils.class); + + /** + * @param rules The list of rules to check + * @param config The config attribute to check the rules against + * @return True if any of the rules matches the given config attribute, false otherwise. + */ + @SuppressWarnings("unchecked") + public boolean checkPermissions(List<SecurityRule> rules, ConfigAttributeDefinition config) + { + log.debug("Evaluation permissions"); + Iterator iterator = config.getConfigAttributes(); + while (iterator.hasNext()) + { + String attribute = ((ConfigAttribute) iterator.next()).getAttribute(); + for (SecurityRule rule : rules) + { + for (PermissionEnum permission : rule.getPermissions()) + { + if (StringUtils.equals(permission.getValue(), attribute)) + { + log.debug("Matching permission: {}", permission.getValue()); + return true; + } + } + } + } + log.debug("No matching permissions found."); + return false; + } + + /** + * @param rules The list of rules to check + * @param argument The object to check the rules against + * @return True if any of the rules matches the given object, false otherwise. + */ + public boolean checkRules(List<SecurityRule> rules, Object argument) + { + log.debug("Evaluating rules."); + try + { + for (SecurityRule rule : rules) + { + String objProperty = BeanUtils.getSimpleProperty(argument, rule.getProperty()); + switch (rule.getModifier()) + { + case EQUALS: + if (StringUtils.equals(objProperty, rule.getValue())) + { + log.debug("Matching rule found: {}", rule); + return true; + } + break; + case NOT: + if (!StringUtils.equals(objProperty, rule.getValue())) + { + log.debug("Matching rule found: {}", rule); + return true; + } + break; + default: + throw new RuntimeException("Modifier " + rule.getModifier() + " is not recognized"); + } + } + } + catch (NoSuchMethodException e) + { + log.error("{}", e); + } + catch (IllegalAccessException e) + { + log.error("{}", e); + } + catch (InvocationTargetException e) + { + log.error("{}", e); + } + log.debug("No matching rules found."); + return false; + } + + + /** + * @param authentication The authentication method + * @return The collection of roles contained in the authentication + */ + public List<String> getRolesFromAuthentication(Authentication authentication) + { + List<String> roles = new ArrayList<String>(); + for (GrantedAuthority authority : authentication.getAuthorities()) + { + log.debug("Granted authority for user {}: {}", authentication.getName(), authority.getAuthority()); + roles.add(authority.getAuthority()); + } + return roles; + } + + + /** + * @param object The object to get the name from + * @return The object name + */ + public String getClassName(Object object) + { + // is this class a CGLib proxy? + if (StringUtils.contains(object.getClass().getName(), "$$")) + { + return StringUtils.substringBefore(object.getClass().getName(), "$$"); + } + return object.getClass().getName(); + } +} Modified: trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java =================================================================== --- trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java 2008-02-20 15:55:57 UTC (rev 667) +++ trunk/openutils-hibernate-security/src/main/java/it/openutils/hibernate/security/services/SecurityRuleManager.java 2008-02-20 16:04:43 UTC (rev 668) @@ -65,7 +65,7 @@ /** * @param entity The entity to apply rules for * @param rules The list of rules to apply - * @return + * @return The Hibernate Filter responding to the given criteria * @throws SecurityException * @throws ClassNotFoundException * @throws InstantiationException This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |