Jboss 通过https的Spring安全注销不工作

Jboss 通过https的Spring安全注销不工作,jboss,spring-security,Jboss,Spring Security,我有Spring安全性的基本配置。注销按钮在HTTP上工作得非常好,但在处理HTTPS时会出现问题。我的安全配置如下所示: <http use-expressions="true" auto-config="false" entry-point-ref="http403EntryPoint" access-denied-page="/accessDenied"> <intercept-url pattern="/**" access="hasRole('AA

我有Spring安全性的基本配置。注销按钮在HTTP上工作得非常好,但在处理HTTPS时会出现问题。我的安全配置如下所示:

<http use-expressions="true" auto-config="false" entry-point-ref="http403EntryPoint"
      access-denied-page="/accessDenied">
    <intercept-url pattern="/**" access="hasRole('AA_ACCESS')" requires-channel="any"/>
    <custom-filter position="PRE_AUTH_FILTER" ref="siteminderFilter"/>
    <session-management>
        <concurrency-control max-sessions="1" expired-url="/sessionExpired"/>
    </session-management>
    <logout invalidate-session="true" delete-cookies="JSESSIONID"/>
</http>

注销按钮:

<a href="<c:url value="${requestScope.pageContext.servletContext.contextPath}/j_spring_security_logout" />">Logout</a>

正如我所说,在HTTP上一切都可以正常工作,但HTTPS不行


我得到错误404页未找到。应用程序正在运行的端口是:11501用于JBoss AS,而HTTPS是Apache,带有JBoss的ajp连接器,Apache是16000,ajp 8009。

不确定为什么它在http上工作,所以我不知道这是否有帮助,但您可以尝试在注销配置上设置
注销成功url
,如果404错误是由于缺少一个页面导致的,在注销完成后,您将被重定向到该页面


不确定为什么它在http上工作,所以我不知道这是否有帮助,但您可以尝试在注销配置上设置
注销成功url
,以防404错误是由于缺少一个页面导致的,在注销完成后您将被重定向到该页面


卢克·泰勒是对的。这不是春季安全问题。记住,孩子们,在你的同事之后检查每件事两次。在我的例子中,Apache VirtualHost配置错误:

<VirtualHost *:11600>
    ServerName localhost
    DocumentRoot "/apache/htdocs/aa"
    SSLEngine on
    SSLCertificateFile "/apache/conf/server.crt"
    SSLCertificateKeyFile "/apache/conf/server.key"
    ProxyPass /admin ajp://localhost:8009/admin/ <--- HERE
    <Directory "/apache/htdocs/aa">
      DirectoryIndex index.html
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common
    LogLevel debug
</VirtualHost>  

服务器名本地主机
DocumentRoot“/apache/htdocs/aa”
斯伦金安
SSLCertificateFile“/apache/conf/server.crt”
SSLCertificateKeyFile“/apache/conf/server.key”

代理通行证/管理ajp://localhost:8009/admin/ 卢克·泰勒是对的。这不是春季安全问题。记住,孩子们,在你的同事之后检查每件事两次。在我的例子中,Apache VirtualHost配置错误:

<VirtualHost *:11600>
    ServerName localhost
    DocumentRoot "/apache/htdocs/aa"
    SSLEngine on
    SSLCertificateFile "/apache/conf/server.crt"
    SSLCertificateKeyFile "/apache/conf/server.key"
    ProxyPass /admin ajp://localhost:8009/admin/ <--- HERE
    <Directory "/apache/htdocs/aa">
      DirectoryIndex index.html
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common
    LogLevel debug
</VirtualHost>  

服务器名本地主机
DocumentRoot“/apache/htdocs/aa”
斯伦金安
SSLCertificateFile“/apache/conf/server.crt”
SSLCertificateKeyFile“/apache/conf/server.key”

代理通行证/管理ajp://localhost:8009/admin/ 这不太可能是春季安全问题。更可能与代理/重定向等有关。请检查调试日志并提供更多信息。导致404的确切请求是什么?它是如何出现在JBoss/tomcat访问日志中的?失败的请求是注销。按下注销按钮后,通过HTTP我的cookie被清除,而通过HTTPS我有404错误。在检查Apache和JBoss日志后,我发现在HTTPS上,注销url时添加了一个斜杠,所以url看起来是这样的:
webcontext//j_spring\u security\u logout
这是原因吗?为什么添加此斜杠?这不太可能是Spring安全问题。更可能与代理/重定向等有关。请检查调试日志并提供更多信息。导致404的确切请求是什么?它是如何出现在JBoss/tomcat访问日志中的?失败的请求是注销。按下注销按钮后,通过HTTP我的cookie被清除,而通过HTTPS我有404错误。在检查Apache和JBoss日志后,我发现在HTTPS上,注销url时添加了一个斜杠,所以url看起来是这样的:
webcontext//j_spring\u security\u logout
这是原因吗?为什么添加此斜杠?请查看我上面的评论。Unfotunatelly,成功url bo注销url本身没有问题:(查看上面的评论。Unfotunatelly,成功url bo注销url本身没有问题:(