Jakarta ee TomEE、JAAS、SQLLoginModule和403

Jakarta ee TomEE、JAAS、SQLLoginModule和403,jakarta-ee,web.xml,http-status-code-403,jaas,apache-tomee,Jakarta Ee,Web.xml,Http Status Code 403,Jaas,Apache Tomee,我已将SQLLoginModule添加到我的部署(TomEE 1.5.1): 指向login.config的系统属性 login.config配置为使用SQLLogin域 已更新server.xml以使用此域 这是web.xml(我几乎可以肯定问题就在这里) 无担保 不安全区域 /login.html 保密的 整个应用程序 *.html 管理 超级用户 使用者 保密的 管理 超级用户 使用者 形式 SQLLogin /login.html /login.html testRest.html

我已将SQLLoginModule添加到我的部署(TomEE 1.5.1):

  • 指向login.config的系统属性
  • login.config配置为使用SQLLogin域
  • 已更新server.xml以使用此域
  • 这是web.xml(我几乎可以肯定问题就在这里)

    
    无担保
    不安全区域
    /login.html
    保密的
    整个应用程序
    *.html
    管理
    超级用户
    使用者
    保密的
    管理
    超级用户
    使用者
    形式
    SQLLogin
    /login.html
    /login.html
    testRest.html
    
    部署和登录时,我甚至远程调试了
    org.apache.openejb.core.security.jaas.SQLLoginModule
    ,没有例外,但由于某种原因,重定向到欢迎文件失败,我收到了403拒绝访问错误


    有什么想法吗?

    那么,在我个人的“通过多洛洛洛萨”之后,这里有一个解决方案:)
    首先,错误出现在server.xml JAASRealm配置中。
    使用我以前使用的指令

    下载tomcat源代码并进行一些调试后,我发现,
    org.apache.openejb.core.security.jaas.SQLLoginModule
    实际生成的主体是:

    userClassNames="org.apache.openejb.core.security.jaas.UserPrincipal"
    roleClassNames="org.apache.openejb.core.security.jaas.GroupPrincipal"
    
    这就解决了问题

    userClassNames="org.apache.openejb.core.security.AbstractSecurityService$User"
    roleClassNames="org.apache.openejb.core.security.AbstractSecurityService$Group"
    
    userClassNames="org.apache.openejb.core.security.jaas.UserPrincipal"
    roleClassNames="org.apache.openejb.core.security.jaas.GroupPrincipal"