我有一个Web应用程序,该应用程序由HTML前端,JAX-RS后端和将后端连接到数据库的JPA层组成。它在Glassfish 5,Payara 5,Wildfly-20以及其他型号上运行。 (我主要使用Glassfish)。
交互式用户通过登录表单进行身份验证,但是我想添加对跳过HTML前端并直接访问JAX-RS后端的守护程序用户的支持。我希望这些守护程序用户使用证书进行身份验证。
我可以两次安装该应用程序;交互式用户可以使用一组通过表单进行身份验证的URL,而守护程序用户可以使用一组通过证书进行身份验证的URL。但是除了这种丑陋的感觉外,我担心JPA层会被复制,这可能会导致缓存相互冲突时出现问题。
是否有更好的方式来支持交互式和守护程序用户?也许Web应用程序可以通过某种方式首先尝试通过证书进行身份验证,如果无法通过表单进行身份验证,则可以采用这种方法。也许有两种安装方式可以共享同一JPA层。还是更聪明的东西?