1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.login.filter;
18
19 import java.security.Principal;
20 import java.util.Iterator;
21 import java.util.List;
22
23 import javax.security.auth.Subject;
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletRequestWrapper;
26
27 import org.apache.jetspeed.security.RolePrincipal;
28 import org.apache.jetspeed.security.SecurityHelper;
29
30 public class PortalRequestWrapper extends HttpServletRequestWrapper
31 {
32 private Principal userPrincipal = null;
33 private Subject subject ;
34
35 public PortalRequestWrapper(HttpServletRequest request, Subject subject,
36 Principal userPrincipal)
37 {
38 super(request);
39 this.subject = subject;
40 this.userPrincipal = userPrincipal;
41 }
42
43 public boolean isUserInRole(String roleName)
44 {
45 if (subject == null)
46 {
47 return false;
48 }
49 List roles = SecurityHelper.getPrincipals(subject, RolePrincipal.class);
50 Iterator ir = roles.iterator();
51 while (ir.hasNext())
52 {
53 RolePrincipal role = (RolePrincipal)ir.next();
54 if (roleName.equals(role.getName()))
55 return true;
56 }
57 return false;
58 }
59
60 public void setUserPrincipal(Principal userPrincipal)
61 {
62 this.userPrincipal = userPrincipal;
63 }
64
65 public Principal getUserPrincipal()
66 {
67 return userPrincipal;
68 }
69
70 /***
71 * Return the name of the remote user that has been authenticated
72 * for this Request.
73 */
74 public String getRemoteUser()
75 {
76 if (userPrincipal != null)
77 {
78 return userPrincipal.getName();
79 }
80 else
81 {
82 return null;
83 }
84 }
85
86 }