我在Websphere安全方面还很陌生。在我的应用程序中,我有一个ejb,它具有以用户身份运行的安全设置。当我对ejb执行ping操作时,它将使用在runas配置中指定的用户执行方法。
是否可以对servlet执行相同的操作?我的意思是当用户从ui发送请求并且websphere作为用户从runas配置执行dopost / doget时?
最佳答案
如果使用的是Servlet 3.1(Java EE 7),则可以在Servlet类上使用@RunAs
批注。
例如,这组Servlet批注将允许Manager和Employee角色访问servlet并以Employee角色运行:
@RunAs("Employee")
@WebServlet("/myServlet")
@ServletSecurity(
httpMethodConstraints = {
@HttpMethodConstraint(value = "GET", rolesAllowed = "Manager"),
@HttpMethodConstraint(value = "GET", rolesAllowed = "Employee")
}
)
public class MyServlet extends HttpServlet {
// ...
}
有关RunAs配置的完整Liberty文档,请参见此处:Configuring RunAs authentication in Liberty