0

目前我正在通过 Spring Filter 和 Servlet 使用 Spring Security Authentication。

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/remoting/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/admin</url-pattern>
</servlet-mapping>

<!-- Enables Spring Security -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>
        org.springframework.web.filter.DelegatingFilterProxy
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- End Spring Security -->

在我的 spring-security.xml 里面

<authentication-manager alias="authenticationManager">
    <authentication-provider ref="myAppAuthenticationProvider"/>
</authentication-manager>

<beans:bean id="myAppAuthenticationProvider"
        class="com.filter.MyAppAuthenticationProvider">
    <beans:property name="repository" value="#{deployment['globalregistry.repository']}"/>
</beans:bean>

现在,当我点击例如 URL 时:http://localhost:8080/context/admin?action=authenticate

j_username:用户
j_password:密码

我得到一个输入用户和密码的屏幕,该屏幕由 spring-security 验证。

现在,当我尝试通过 HTTPPost API 通过 Java 程序访问上述 URL 时,我收到重定向错误响应为 302。现在如何绕过登录屏幕进行验证并直接进行身份验证而不重定向到网页。并且还使用我的 java 程序提供 j_username 和 j_password。

请注意,当我点击 URL 时,页面会被重定向到类似这样的内容http://localhost:8080/context/spring_security_login

您的帮助将非常感谢伙计们。!

4

1 回答 1

1

您应该传入用于身份验证的 URL j_usernamej_password

例如:

http://localhost:8080/yourAppContext/j_spring_security_check?j_username=user&j_password=pass
于 2012-06-20T14:10:04.463 回答