1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.eclipse.jetty.plus.annotation;
15
16 import javax.servlet.ServletException;
17
18 import org.eclipse.jetty.security.SecurityHandler;
19 import org.eclipse.jetty.servlet.ServletHolder;
20
21
22
23
24
25
26 public class RunAs
27 {
28 private Class _targetClass;
29 private String _roleName;
30
31 public RunAs()
32 {}
33
34
35 public void setTargetClass (Class clazz)
36 {
37 _targetClass=clazz;
38 }
39
40 public Class getTargetClass ()
41 {
42 return _targetClass;
43 }
44
45 public void setRoleName (String roleName)
46 {
47 _roleName = roleName;
48 }
49
50 public String getRoleName ()
51 {
52 return _roleName;
53 }
54
55
56 public void setRunAs (ServletHolder holder, SecurityHandler securityHandler)
57 throws ServletException
58 {
59 if (holder == null)
60 return;
61 String className = getServletClassNameForHolder(holder);
62
63 if (className.equals(_targetClass.getName()))
64 holder.setRunAsRole(_roleName);
65 }
66
67 public static String getServletClassNameForHolder (ServletHolder holder)
68 throws ServletException
69 {
70 return holder.getClassName();
71 }
72
73 }