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; } }
... 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) ...
DOH!
Now I see...
I needed to remove the security-rules property from components.xml