2015-02-11 3 views
0

У меня есть общий вопрос. У меня есть веб-проект, написанный с использованием Spring Security 3.2 и Spring 4. Я развернул проект в Tomcat 7.0. Для пользователей проекта есть две роли в течение весны: USER и COMPANY. Когда я вхожу в систему с домашнего компьютера (без какого-либо прокси), все работает нормально. Но если я вхожу в систему с моего рабочего компьютера (мой компьютер находится за прокси-сервером), мое веб-приложение работает неправильно, он не может получить локализацию или часто дает роль USER учетной записи компании и т. Д. Я искал эту проблему в Интернете, но не могу найти любые решения. Надеюсь, кто-нибудь может понять, что может быть причиной. Заранее спасибо ..Проблемы с прокси-сервером Spring

весна-security.xml:

<?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:security="http://www.springframework.org/schema/security" 
    xmlns:p="http://www.springframework.org/schema/p" 
    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"> 
<bean id="securityExpressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler" /> 

<security:global-method-security 
    pre-post-annotations="enabled"> 
    <security:expression-handler ref="securityExpressionHandler" /> 
</security:global-method-security> 

<security:http auto-config="false" use-expressions="true" access-denied-page="/login" entry-point-ref="authenticationEntryPoint"> 

    <security:intercept-url pattern="/login" access="permitAll"/> 
    <security:intercept-url pattern="/account/register" access="permitAll"/> 
    <security:intercept-url pattern="/main" access="hasAnyRole('ROLE_USER, ROLE_COMPANY')"/> 
    <security:intercept-url pattern="/profile" access="hasAnyRole('ROLE_USER, ROLE_COMPANY')"/> 
    <security:intercept-url pattern="/wishlist" access="hasRole('ROLE_USER')"/> 
    <security:intercept-url pattern="/messagebox" access="hasAnyRole('ROLE_USER, ROLE_COMPANY')"/> 
    <security:intercept-url pattern="/settings" access="hasAnyRole('ROLE_USER, ROLE_COMPANY')"/> 
    <security:intercept-url pattern="/search" access="hasAnyRole('ROLE_USER, ROLE_COMPANY')"/> 



    <security:logout invalidate-session="true" logout-success-url="/login" logout-url="/logout" /> 

    <security:custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER"/> 
    <security:custom-filter ref="concurrencyFilter" position="CONCURRENT_SESSION_FILTER"/> 
    <security:session-management session-authentication-strategy-ref="sas" /> 

</security:http> 

<bean id="authenticationFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter" 
    p:sessionAuthenticationStrategy-ref="sas" 
    p:authenticationManager-ref="authenticationManager" 
     p:authenticationFailureHandler-ref="customAuthenticationFailureHandler" 
     p:authenticationSuccessHandler-ref="customAuthenticationSuccessHandler"/> 

<bean id="customAuthenticationFailureHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler" 
    p:defaultFailureUrl="/login?fail=true" /> 

    <!-- We just actually need to set the default target url here --> 
<bean id="customAuthenticationSuccessHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler" 
    p:defaultTargetUrl="/main" /> 

<bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint" 
    p:loginFormUrl="/login"/> 

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

<bean id="customAuthenticationProvider" class="service.CustomAuthenticationManager"> 
</bean> 


<!-- A custom service where Spring will retrieve users and their corresponding access levels --> 
<bean id="customUserDetailsService" class="service.CustomUserDetailsService"/> 


<bean id="concurrencyFilter" class="filter.AzunisConcurrentSessionFilter" 
      p:sessionRegistry-ref="sessionRegistry" 
      p:expiredUrl="/login" /> 
<bean id="sas" class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy" 
     p:maximumSessions="-1" p:exceptionIfMaximumExceeded="false" p:alwaysCreateSession="true"> 
    <constructor-arg name="sessionRegistry" ref="sessionRegistry" /> 
</bean> 

<!-- Maintains a registry of SessionInformation instances 
     See: http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/core/session/SessionRegistry.html --> 
<bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" /> 

+2

Пожалуйста, поделитесь своей конфигурацией безопасности пружины. Это поможет обеспечить лучший ответ. – Mithun

+0

код пожалуйста .... :) –

+0

извините. обновил вопрос :) – 0bj3ct

ответ

1

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

Смежные вопросы