You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by ka...@apache.org on 2011/02/12 22:48:23 UTC
svn commit: r1070156 -
/shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java
Author: kaosko
Date: Sat Feb 12 21:48:23 2011
New Revision: 1070156
URL: http://svn.apache.org/viewvc?rev=1070156&view=rev
Log:
FIXED - issue SHIRO-237: nullpointer error at permission check when no permissionresolver is set
https://issues.apache.org/jira/browse/SHIRO-237
- refactor constructors to use best practices for overloading, consolidate initialization logic in the constructor with most arguments
- throw IllegalArgumentException from the permission resolver setter to indicate that its a required attribute
Modified:
shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java
Modified: shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java
URL: http://svn.apache.org/viewvc/shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java?rev=1070156&r1=1070155&r2=1070156&view=diff
==============================================================================
--- shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java (original)
+++ shiro/trunk/core/src/main/java/org/apache/shiro/realm/AuthorizingRealm.java Sat Feb 12 21:48:23 2011
@@ -92,26 +92,30 @@ public abstract class AuthorizingRealm e
============================================*/
public AuthorizingRealm() {
- this.authorizationCachingEnabled = true;
- this.permissionResolver = new WildcardPermissionResolver();
-
- int instanceNumber = INSTANCE_COUNT.getAndIncrement();
- this.authorizationCacheName = getClass().getName() + DEFAULT_AUTHORIZATION_CACHE_SUFFIX;
- if (instanceNumber > 0) {
- this.authorizationCacheName = this.authorizationCacheName + "." + instanceNumber;
- }
+ this(null, null);
}
public AuthorizingRealm(CacheManager cacheManager) {
- super(cacheManager);
+ this(cacheManager, null);
}
public AuthorizingRealm(CredentialsMatcher matcher) {
- super(matcher);
+ this(null, matcher);
}
public AuthorizingRealm(CacheManager cacheManager, CredentialsMatcher matcher) {
- super(cacheManager, matcher);
+ super();
+ if (cacheManager != null) setCacheManager(cacheManager);
+ if (matcher != null) setCredentialsMatcher(matcher);
+
+ this.authorizationCachingEnabled = true;
+ this.permissionResolver = new WildcardPermissionResolver();
+
+ int instanceNumber = INSTANCE_COUNT.getAndIncrement();
+ this.authorizationCacheName = getClass().getName() + DEFAULT_AUTHORIZATION_CACHE_SUFFIX;
+ if (instanceNumber > 0) {
+ this.authorizationCacheName = this.authorizationCacheName + "." + instanceNumber;
+ }
}
/*--------------------------------------------
@@ -178,6 +182,7 @@ public abstract class AuthorizingRealm e
}
public void setPermissionResolver(PermissionResolver permissionResolver) {
+ if (permissionResolver == null) throw new IllegalArgumentException("Null PermissionResolver is not allowed");
this.permissionResolver = permissionResolver;
}