@@ -40,12 +40,8 @@ public abstract class AbstractSecurityExpressionHandler<T> implements
4040 SecurityExpressionHandler <T >, ApplicationContextAware {
4141 private ExpressionParser expressionParser = new SpelExpressionParser ();
4242 private BeanResolver br ;
43- private ApplicationContext context ;
4443 private RoleHierarchy roleHierarchy ;
4544 private PermissionEvaluator permissionEvaluator = new DenyAllPermissionEvaluator ();
46- private boolean roleHierarchySet = false ;
47- private boolean permissionEvaluatorSet = false ;
48-
4945
5046 public final ExpressionParser getExpressionParser () {
5147 return expressionParser ;
@@ -105,52 +101,23 @@ protected StandardEvaluationContext createEvaluationContextInternal(
105101 protected abstract SecurityExpressionOperations createSecurityExpressionRoot (
106102 Authentication authentication , T invocation );
107103
108- private boolean roleHerarchyNotSetForValidContext () {
109- return ! roleHierarchySet && context != null ;
110- }
111-
112104 protected RoleHierarchy getRoleHierarchy () {
113- if (roleHerarchyNotSetForValidContext ()) {
114- RoleHierarchy contextRoleHierarchy = getSingleBeanOrNull (RoleHierarchy .class );
115- if (contextRoleHierarchy != null ){
116- roleHierarchy = contextRoleHierarchy ;
117- }
118- roleHierarchySet = true ;
119- }
120105 return roleHierarchy ;
121106 }
122107
123108 public void setRoleHierarchy (RoleHierarchy roleHierarchy ) {
124- roleHierarchySet = true ;
125109 this .roleHierarchy = roleHierarchy ;
126110 }
127111
128112 protected PermissionEvaluator getPermissionEvaluator () {
129- if (! permissionEvaluatorSet && context != null ) {
130- PermissionEvaluator contextPermissionEvaluator = getSingleBeanOrNull (PermissionEvaluator .class );
131- if (contextPermissionEvaluator != null ){
132- permissionEvaluator = contextPermissionEvaluator ;
133- }
134- permissionEvaluatorSet = true ;
135- }
136113 return permissionEvaluator ;
137114 }
138115
139116 public void setPermissionEvaluator (PermissionEvaluator permissionEvaluator ) {
140- permissionEvaluatorSet = true ;
141117 this .permissionEvaluator = permissionEvaluator ;
142118 }
143119
144120 public void setApplicationContext (ApplicationContext applicationContext ) {
145121 br = new BeanFactoryResolver (applicationContext );
146- this .context = applicationContext ;
147- }
148-
149- private <T > T getSingleBeanOrNull (Class <T > type ) {
150- String [] beanNamesForType = context .getBeanNamesForType (type );
151- if (beanNamesForType == null || beanNamesForType .length != 1 ) {
152- return null ;
153- }
154- return context .getBean (beanNamesForType [0 ], type );
155122 }
156123}
0 commit comments