0

こんにちは、認証用のログインフォーム構成がいくつかあります。単純なログインフォームを次のように置き換えたいです

        response.setHeader("WWW-Authenticate", "Basic realm=\"/\"");
        response.setStatus(401);
        response.setHeader("Location", url);

このフォームのように動作し、spnegoAuthenticationProcessingFilter を使用します。

<div id="login-box">

    <h3>Login with Username and Password</h3>
    <c:if test="${not empty error}">
        <div class="error">${error}</div>
    </c:if>
    <c:if test="${not empty msg}">
        <div class="msg">${msg}</div>
    </c:if>

    <form name='loginForm' action="<c:url value='j_spring_security_check' />" method='POST'>
      <table>
        <tr>
            <td>User:</td>
            <td><input type='text' name='j_username' value=''></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type='password' name='j_password' /></td>
        </tr>
        <tr>
            <td colspan='2'><input name="submit" type="submit" value="submit" /></td>
        </tr>
      </table>
    </form>
</div>

これは私の春のセキュリティ構成です:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sec="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd">


    <sec:http entry-point-ref="spnegoEntryPoint" auto-config="false" >
        <sec:intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <sec:intercept-url pattern="/**" access="ROLE_USER" />
        <sec:custom-filter ref="spnegoAuthenticationProcessingFilter" position="BASIC_AUTH_FILTER" />
        <sec:form-login login-page="/login" default-target-url="/hello" always-use-default-target="true"/>
    </sec:http>

    <bean id="spnegoEntryPoint" class="org.springframework.security.extensions.kerberos.web.SpnegoEntryPoint" />

    <bean id="spnegoAuthenticationProcessingFilter" class="org.springframework.security.extensions.kerberos.web.SpnegoAuthenticationProcessingFilter">
        <property name="authenticationManager" ref="authenticationManager" />
    </bean>

    <sec:authentication-manager alias="authenticationManager">
        <sec:authentication-provider ref="kerberosAuthenticationProvider"/>
    </sec:authentication-manager>

    <!-- Login form auth -->
    <bean id="kerberosAuthenticationProvider" class="org.springframework.security.extensions.kerberos.KerberosAuthenticationProvider">
        <property name="kerberosClient">
            <bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosClient">
                <property name="debug" value="true" />
            </bean>
        </property>
        <property name="userDetailsService" ref="dummyUserDetailsService" />
    </bean>

    <bean class="org.springframework.security.extensions.kerberos.GlobalSunJaasKerberosConfig">
        <property name="debug" value="true" />
        <property name="krbConfLocation" value="/apps/bin/krb5/krb5.conf" />
    </bean>

    <bean id="dummyUserDetailsService" class="com.web.ldap.DummyUserDetailsService"/>

</beans>

これは可能ですか?

4

1 に答える 1

0

私はそれによってこれを行います

<sec:http>
    <sec:intercept-url pattern="/**" access="ROLE_USER" />
    <sec:http-basic entry-point-ref="spnegoEntryPoint"/>
 <!--    <sec:custom-filter ref="spnegoAuthenticationProcessingFilter" position="BASIC_AUTH_FILTER" />  -->
</sec:http>

しかし、今は spnegoAuthenticationProcessingFilter が機能していません...

custom-filter のコメントを外すと、アプリケーションが機能しなくなります

于 2014-07-25T09:23:49.820 に答える