hi,

 All we did was that we created a custom valve that extends 
org.apache.catalina.valves.ValveBase;

in the invoke method , we added the user principals to the request using 
following lines of code.


  | .
  | List roles = new ArrayList();
  | roles.add("Authenticated");
  | roles.add("User");
  | roles.add("Admin");
  | roles.add("CustomRole"); // add any roles that you want to add depending on 
context
  | 
  | .
  | .
  | request.setUserPrincipal(new 
GenericPrincipal(request.getContext().getRealm(), username,password, roles));
  | .
  | .
  | .
  | getNext().invoke(request, response);
  | 

you can also create  new subjects and add to SecurityAssociation


Group roleGroup = new SimpleGroup("Roles");
  | 
  | for (int i = 0; i < roles.size(); i++) {
  | String rname = (String) roles.get(i);
  | Principal p = new UserPrincipal(rname);
  | roleGroup.addMember(p);
  | }
  | 
  | Subject subj = new Subject();
  | subj.getPrincipals().add(new UserPrincipal(username));
  | subj.getPrincipals().add(roleGroup);
  | SecurityAssociation.setSubject(subj);
  | 

Once you are done with this, next we have to tell the application that  it has 
to go through the custom valve that we created. This is done by creating a new 
file called context.xml having the following entry (specify your custom valve 
class name)

<Context>
  |     <Valve className="sample.util.CustomValve" />
  | </Context>

place this file xml along with web.xml (in 
jboss-portal.sar\portal-server.war\WEB-INF)

create a jar of your custom valve class file and put it in any lib dir. we put 
it in server\default\lib.

then restart the server .


Hope this will help,
tellarsrinivasprabhu

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4084942#4084942

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4084942
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to