Wie man die Rollen von UserPrincipal in Java?

Ich eine Klasse angelegt(Benannt als CustomRequestWrapper), die Umsetzung HttpServletRequestWrapper .In CustomRequestWrapper Klasse, ich bin Einstellung user principal.Jetzt in meinem code möchte ich, um die Liste der Rollen aus der user principal.Ich habe versucht, GenericPrincipal-Klasse von tomcat-catalina jar, aber ich bin immer casting Ausnahme CustomRequestWrapper kann nicht umgewandelt werden, GenericPrincipal -. Könnte jeder eine Idee haben, wie man Rollen von user principal?

Hinweis: ich benutze Apache Tomcat Server

Hier ist mein code:

public class CustomRequestWrapper extends javax.servlet.http.HttpServletRequestWrapper {

public CustomRequestWrapper(String User,List<String> roles,HttpServletRequest request) {
    super(request);
    this.user=User;
    this.roles=roles;
    this.realRequest=request;
    headerMap = new HashMap();
}
String user;  
List<String> roles = null; 
HttpServletRequest realRequest;  
private Map headerMap;

public void addHeader(String name, String value) {
    headerMap.put(name, new String(value));
}

public Enumeration getHeaderNames() {
    HttpServletRequest request = (HttpServletRequest) getRequest();
    List list = new ArrayList();
    for (Enumeration e = request.getHeaderNames(); e.hasMoreElements();) {
        list.add(e.nextElement().toString());
    }

    for (Iterator i = headerMap.keySet().iterator(); i.hasNext();) {
        list.add(i.next());
    }
    return Collections.enumeration(list);
}

public String getHeader(String name) {
    Object value;
    if ((value = headerMap.get("" + name)) != null)
        return value.toString();
    else
        return ((HttpServletRequest) getRequest()).getHeader(name);
}
     @override
public boolean isUserInRole(String role) {  
    if (roles == null) {  
        return this.realRequest.isUserInRole(role);  
    }  
    return roles.contains(role);  
}  

@override
public Principal getUserPrincipal() {  
    if (this.user == null) {  
        return realRequest.getUserPrincipal();  
    }  

    //make an anonymous implementation to just return our user  
    return new Principal() {  

        public String getName() {       
            return user;  
        }  
    };  
}  

}

Sind Sie versuchen, um die Rollen für einen Kater authentifizierte Benutzer, das heißt die Rollen deklariert tomcat-users.xml ?
Nein .Ich werde versuchen, die Rollen für meine app authentifizierte Benutzer
Fine, könnten Sie zeigen den code, der für Sie CustomRequestWrapper ?
Bitte überprüfen Sie es ,ich habe meinen code

InformationsquelleAutor Nadendla | 2014-05-28

Schreibe einen Kommentar