5

我们目前正在使用 Spring x509 支持 client-auth。应用服务器是 JBoss,其中已设置了 verify-client="want"。

但是我观察到,一旦我将 x509 元素添加到 spring 配置文件中,它将尝试为每个 http 请求加载数字证书。但是我不希望它为登录页面这样做。除非用户单击登录页面上的特定按钮(例如“使用证书登录”),否则我不希望加载和使用证书。

有没有办法排除任何特定的 URL?或者一旦你在 Spring 配置元素中有一个 x509 元素,它会尝试为每个 http 请求加载证书?

这是我的弹簧配置的一部分:

<security:http create-session="always"> 
    <x509 subject-principal-regex="CN=(.*?)," user-service-ref="myUserDetailsService" /> 
    <intercept-url pattern= ..... // not relevant to this question
            <intercept-url pattern= ..... // not relevant to this question
    <security:form-login
            login-page="myLoginPage" 
            authentication-failure-url="/myErrorPage" 
            default-target-url="/mySuccessPage"
            always-use-default-target="true"/>

</security:http>

此外,如果不在 Spring 中,是否有办法在 JBOSS 上指定排除 URL:

这是在 JBOSS Standalone.xml 中配置的元素

        <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
            <ssl name="ssl" key-alias="alias" certificate-key-file="keystore" verify-client="want" ca-certificate-file="truststore"/>
        </connector>
4

0 回答 0