어노테이션을 사용하여 소스 코드에서 직접 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() 메소드에는 역할 팀의 사용자가 액세스할 수 있습니다.
컴포넌트 | 역할을 확인하는 데 사용되는 API |
---|---|
EJB | javax.ejb.EJBContext.isCallerInRole(role) |
서블릿 | javax.servlet.http.HttpServletRequest.isUserInRole(role) |
웹 서비스 | 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()