1 Reply Latest reply on Oct 10, 2007 8:08 AM by gagool

    Overriding the Identity component..  (like lacewiki does) fa

    gagool

      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)
      ...