1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.samples.jaxrs.resources;
20
21
22 import org.apache.shiro.authz.annotation.RequiresAuthentication;
23 import org.apache.shiro.authz.annotation.RequiresGuest;
24 import org.apache.shiro.authz.annotation.RequiresPermissions;
25 import org.apache.shiro.authz.annotation.RequiresRoles;
26 import org.apache.shiro.authz.annotation.RequiresUser;
27
28 import javax.ws.rs.DefaultValue;
29 import javax.ws.rs.GET;
30 import javax.ws.rs.Path;
31 import javax.ws.rs.Produces;
32 import javax.ws.rs.QueryParam;
33
34 @Path("secure")
35 @Produces({"application/json","plain/text"})
36 public class SecureResource {
37
38
39 @RequiresPermissions("lightsaber:requiresPermissions")
40 @Path("RequiresPermissions")
41 @GET
42 public String protectedByRequiresPermissions() {
43 return "protected";
44 }
45
46 @RequiresRoles("admin")
47 @Path("RequiresRoles")
48 @GET
49 public String protectedByRequiresRoles() {
50 return "protected";
51 }
52
53 @RequiresUser
54 @Path("RequiresUser")
55 @GET
56 public String protectedByRequiresUser() {
57 return "protected";
58 }
59
60 @RequiresGuest
61 @Path("RequiresGuest")
62 @GET
63 public String protectedByRequiresGuest() {
64 return "not protected";
65 }
66
67 @RequiresAuthentication
68 @Path("RequiresAuthentication")
69 @GET
70 public String protectedByRequiresAuthentication() {
71 return "protected";
72 }
73
74
75 }