[jboss-user] Re: Overriding the Identity component.. (like lacewiki does) fa

samk at twinix.com samk at twinix.com
Thu Mar 6 06:11:22 EST 2008


See Thread at: http://www.techienuggets.com/Detail?tx=15106 Posted on behalf of a User

Seam appears to be expecting an instance of RuleBasedIdentity versus Identity. RuleBasedIdentity is an extension of identity that deals with Drools. Extending RuleBasedIdentity instead Idendity will make it to work.

Rafa.

In Response To: 

For some reason seam wants an securityRules-setter on my inherited Identity component. I can't find any securityRules, any idea why?

this simeple case:


  | @Name("org.jboss.seam.security.identity")
  | @Scope(SESSION)
  | @BypassInterceptors
  | @Install(precedence = APPLICATION)
  | @AutoCreate
  | public class YSIdentity extends Identity {
  | 
  | 	private static final long serialVersionUID = -1573888046524276986L;
  | 	private UserAccount userAccount;
  | 	private ContentProviderAccount contentProviderAccount;
  | 
  | 	// We don't care if a user is logged in, just check it...
  | 	@Override
  | 	public void checkRestriction(String expr) {
  | 		if (!evaluateExpression(expr)) {
  | 			Events.instance().raiseEvent("org.jboss.seam.notAuthorized");
  | 			throw new AuthorizationException(String.format("Authorization check failed for expression [%s]",
  | 					expr));
  | 		}
  | 	}
  | 
  | 	@Override
  | 	public boolean hasPermission(String name, String action, Object... args) {
  | 
  | 		userAccount = (UserAccount) Component.getInstance("contentProviderAccount");
  | 		contentProviderAccount = (ContentProviderAccount) Component.getInstance("contentProviderAccount");
  | 
  | 		if (args == null || args.length == 0) {
  | 			// All the security checks currently need arguments...
  | 			return false;
  | 		}
  | 
  | 
  | 		return false;
  | 	}
  | 
  | }
  | 
  | 

results in this:


  | ...
  | 	at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
  | 	at org.jboss.Main.boot(Main.java:200)
  | 	at org.jboss.Main$1.run(Main.java:508)
  | 	at java.lang.Thread.run(Thread.java:595)
  | Caused by: java.lang.IllegalArgumentException: no such setter method: com.yourstardom.middle.support.YSIdentity.securityRules
  | 	at org.jboss.seam.util.Reflections.getSetterMethod(Reflections.java:236)
  | 	at org.jboss.seam.Component.initInitializers(Component.java:486)
  | 	at org.jboss.seam.Component.<init>(Component.java:264)
  | 	at org.jboss.seam.Component.<init>(Component.java:217)
  | 	at org.jboss.seam.init.Initialization.addComponent(Initialization.java:949)
  | ...
  | 









More information about the jboss-user mailing list