public void invoke(Request request,
Response response) throws IOException, ServletException {
activeCS.set(warCS);
HttpServletRequest httpRequest = (HttpServletRequest) request.getRequest();
//Set the customized rolename-principalset mapping in jboss-app.xml
Map< String, Set< String > > principalToRoleSetMap = metaData.getPrincipalVersusRolesMap();
SecurityRolesAssociation.setSecurityRoles(principalToRoleSetMap);
if(trace)
log.trace("MetaData:"+metaData+":principalToRoleSetMap"+principalToRoleSetMap);
try
{
// Set the JACC context id
PolicyContext.setContextID(contextID);
// Set the JACC HttpServletRequest PolicyContextHandler data
HttpServletRequestPolicyContextHandler.setRequest(httpRequest);
if(SecurityAssociationValve.activeRequest.get() == null)
SecurityAssociationValve.activeRequest.set(request);
// Perform the request
getNext().invoke(request, response);
}
finally
{
SecurityAssociationValve.activeRequest.set(null);
SecurityAssociationActions.clear();
activeCS.set(null);
SecurityRolesAssociation.setSecurityRoles(null);
HttpServletRequestPolicyContextHandler.setRequest(null);
}
}
|