Двойная аутентификация в приложении GWT / EXT + Spring Security - PullRequest
1 голос
/ 20 января 2012

У меня проблемы с двойной аутентификацией.Я реализовал форму аутентификации через всплывающее окно, которое всегда вверху.Но у меня проблема, вероятно, с перехватчиками, которые вызывают запрос аутентификации Tomcat еще до запуска приложения:

Имя пользователя и пароль запрашиваются http://127.0.0.1:8888. Сайт сообщает:Приложение безопасности "

Если я отключаю перехватчики, я вижу в журнале, что SecurityContextHolder рассматривает пользователя как анонимного.

Итак, мой вопрос: можно ли как-то отключить первый экран входа в Tomcat?

XML-код конфигурации Spring-безопасности:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             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.0.xsd">


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

<beans:bean id="customAuthenticationProvider" class="com.myCompany.model.security.CustomAuthenticationProvider" >
    <beans:property name="databaseId"    value="${configuration.databaseId}" />
    <beans:property name="applicationId" value="${configuration.applicationId}" />
</beans:bean>

<http auto-config="true" >
        <intercept-url pattern="/myApp/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
        <intercept-url pattern="/MyApp.html*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
        <intercept-url pattern="/gwt/**" access="ROLE_USER"/>
        <intercept-url pattern="/**/*.html" access="ROLE_USER"/>

        <intercept-url pattern="/css/**" filters="none"/>
        <intercept-url pattern="/**" access="ROLE_USER" />

        <http-basic />  
</http>

<global-method-security secured-annotations="enabled" />

</beans:beans>

Ответы [ 2 ]

1 голос
/ 26 марта 2013

Если я правильно понимаю ваш вопрос, у вас есть проблема с двойной аутентификацией, например, Tomcat аутентификация или Apache Basic Auth и Spring механизм аутентификации.

Во время последнего проекта у меня были проблемы с Apache Basic Auth и механизмом безопасности Spring .Перед запуском у меня была задача «защитить» доступ к сайту простой Apache Basic Auth .Включив это в конфигурации Apache Spring начал делать то же самое: «Приложение Spring Security» все время показывалось

решение для этого поведения было отключить автоконфигурацию :

<security:http auto-config="false" ...>
    ...
</security:http>
0 голосов
/ 21 августа 2012

Ваш вопрос не слишком понятен. Вы упоминаете экран входа в Tomcat, который, как я полагаю, является первым экраном вашего веб-приложения, чтобы позволить пользователю войти в систему.

Если это правильно, и ваша страница входа называется, скажем, login.html, все, что вам нужно сделать, это настроить перехватчики, чтобы разрешить анонимный доступ к этой странице-

<intercept-url pattern="/**/login.*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/gwt/**" access="ROLE_USER"/>
<intercept-url pattern="/**/*.html" access="ROLE_USER"/>

<intercept-url pattern="/css/**" filters="none"/>
<intercept-url pattern="/**" access="ROLE_USER" />
...