01: package dinamica.security;
02:
03: import javax.servlet.http.*;
04: import java.security.*;
05:
06: /**
07: * Wraps the original http request to provide
08: * the same J2EE security APIs under Dinamica
09: * security model.
10: * <br><br>
11: * (c) 2004 Martin Cordova<br>
12: * This code is released under the LGPL license<br>
13: * Dinamica Framework - http://www.martincordova.com
14: * @author Martin Cordova (dinamica@martincordova.com)
15: *
16: */
17:
18: public class RequestWrapper extends HttpServletRequestWrapper {
19:
20: private Principal user = null;
21:
22: public RequestWrapper(HttpServletRequest request) {
23: super (request);
24: }
25:
26: public Principal getUserPrincipal() {
27: return user;
28: }
29:
30: public void setUserPrincipal(Principal user) {
31: this .user = user;
32: }
33:
34: public boolean isUserInRole(String roleName) {
35:
36: boolean flag = false;
37:
38: DinamicaUser u = (DinamicaUser) user;
39: String roles[] = u.getRoles();
40:
41: if (roles != null) {
42: for (int i = 0; i < roles.length; i++) {
43: if (roleName.equals(roles[i])) {
44: flag = true;
45: break;
46: }
47: }
48: }
49:
50: return flag;
51:
52: }
53:
54: /* (non-Javadoc)
55: * @see javax.servlet.http.HttpServletRequest#getRemoteUser()
56: */
57: public String getRemoteUser() {
58: if (user != null)
59: return user.getName();
60: else
61: return super.getRemoteUser();
62: }
63:
64: }
|