在 JAVA EE 7 Web 应用程序 (WAR) 中,需要“手动”将用户设置为经过身份验证的(及其角色)。
基本上我有一个 token (JWT)和一组角色(调用Keycloak授权客户端Java API后获得)。
在获得 token 后,我希望将用户设置为经过身份验证(创建安全上下文),以便对安全 URL 的任何调用都不会返回 403 HTTP 错误。
在 web.xml 中仅定义了不同 URL 映射的角色和安全约束。
已研究过 HttpServletRequest.authenticate 方法,但尚未定义登录配置机制(不需要)。
(不使用 Spring 或其他框架)。
我的猜测是这是不可能的,应该使用 servlet 过滤器来验证安全性(而不是 web.xml 中的安全约束)
谢谢
最佳答案
您需要定义一个登录配置。对于 servlet 容器来说这是必需的。 输入类似:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>default</realm-name>
</login-config>
在你的 web.xml 和 HttpServletRequest.authenticate 中应该可以工作。
并且您应该删除此 servlet 的安全约束 因为您管理应用程序中的安全性(如果尚未完成)。
亲切的问候,
拉尔夫
关于java - servlet 以编程方式设置身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623850/