注釈を使用して、ソース・コード内で直接 Java™ EE エンタープライズ・アプリケーションにセキュリティーを指定できます。
セキュリティー注釈の使用
@Stateless
@RolesAllowed("team")
public class TestEJB implements Test {
@PermitAll
public String hello(String msg) {
return "Hello, " + msg;
}
public String goodbye(String msg) {
return "Goodbye, " + msg;
}
}
この例では、hello() メソッドには全員がアクセスでき、 goodbye() メソッドには team 役割のユーザーがアクセスできます。
コンポーネント | 役割の検査に使用される API |
---|---|
EJB | javax.ejb.EJBContext.isCallerInRole(role) |
サーブレット | javax.servlet.http.HttpServletRequest.isUserInRole(role) |
Web サービス | javax.xml.ws.WebServiceContext.isUserInRole(role) |
@Stateless
@DeclaresRoles({"A", "B"})
public class TestEJB implements Test {
@Resource private SessionContext sc;
public String hello(String msg) {
if (sc.isCallerInRole("A") && !sc.isCallerInRole("B")) {
...
} else {
...
}
}
}
セキュリティー注釈の無効な使用法
@PermitAll
@DenyAll
public String test()
@RolesAllowed("team")
@RolesAllowed("otherteam")
public String hello()
@RolesAllowed({"team", "otherteam"})
public String hello()