我在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

09-10 23:30