2013-07-25 11 views
5

के बाद अंतिम अनुरोध पृष्ठ पर वसंत सुरक्षा रीडायरेक्ट करता है मैंने अपने वेब पोर्टल पर लॉगिन के लिए वसंत सुरक्षा लागू की है। यह एक मुद्दे को छोड़कर ठीक काम करता है। मैंने 5 मिनट तक सत्र टाइमआउट सेट किया है। एक बार टाइमआउट happpens और फिर उपयोगकर्ता किसी भी यूआरएल पर क्लिक करें, यह लॉगआउट पेज पर रीडायरेक्ट हो जाता है। लेकिन जब उपयोगकर्ता स्वाभाविकता करता है, तो उपयोगकर्ता सीधे होम पेज के बजाय अंतिम पहुंच पृष्ठ पर उतरता है जो डिफ़ॉल्ट लक्ष्य URL है।लॉगिन सत्र टाइमआउट

स्प्रिंग सुरक्षा फ़ाइल के रूप में नीचे है:

<?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"> 

    <http auto-config="true"> 
     <intercept-url pattern="/index.jsp" access="ROLE_ADMIN,ROLE_USER" /> 
     <intercept-url pattern="/home.html" access="ROLE_ADMIN,ROLE_USER" /> 
     <intercept-url pattern="/mdm/accessToken.html" access="ROLE_USER" /> 
     <intercept-url pattern="/mdm/enroll.html" access="ROLE_USER" /> 
     <intercept-url pattern="/mdm/installApp.html" access="ROLE_USER" /> 
     <intercept-url pattern="/mdm/checkStatus.html" access="ROLE_USER" /> 
     <intercept-url pattern="/mdm/searchDevice.html" access="ROLE_USER" />  
     <intercept-url pattern="/admin/*" access="ROLE_ADMIN" /> 
     <intercept-url pattern="/account/*" access="ROLE_ADMIN" /> 
     <intercept-url pattern="/user/*" access="ROLE_USER" />  

     <form-login login-page="/login.html" default-target-url="/home.html" 
        authentication-failure-url="/loginfailed.html" /> 
     <logout logout-url="/logout.html" logout-success-url="/logoutSuccess.html" invalidate-session="true" /> 
     <anonymous username="guest" granted-authority="ROLE_GUEST" /> 
     <session-management> 
      <concurrency-control max-sessions="1" /> 
     </session-management> 
     <session-management invalid-session-url="/logout.html" /> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <jdbc-user-service data-source-ref="dataSource" 
       users-by-username-query="select USER as username, password, 'true' as enabled from TBL_USER_MASTER where user=?" 
       authorities-by-username-query="select um.USER as username , rm.ROLE_NAME as authorities from TBL_USER_MASTER um,TBL_ROLE_MASTER rm 
      where um.USER=? and um.role_id=rm.role_id" /> 
      <password-encoder hash="md5"/> 
     </authentication-provider> 
    </authentication-manager> 
</beans:beans> 

उत्तर

8

अपने फार्म लॉगिन टैग करने के लिए हमेशा उपयोग-default-लक्ष्य विशेषता जोड़ें।

<form-login always-use-default-target="true" /> 

अगर सही पर सेट, उपयोगकर्ता हमेशा डिफ़ॉल्ट-लक्ष्य-यूआरएल द्वारा दिए गए मूल्य पर शुरू, वे कैसे प्रवेश पृष्ठ पर पहुंचे की परवाह किए बिना होगा। उपयोगकर्ता नाम पासवर्ड के प्रमाणीकरणफिल्टर की हमेशाUseDefaultTargetUrl प्रॉपर्टी के लिए मानचित्र। डिफ़ॉल्ट मान गलत है।

+0

धन्यवाद बार्ट में समस्या का हल। यह उम्मीद के रूप में काम कर रहा है – UserAdi

2

Grails में इस सेटिंग का Config.groovy

grails.plugin.springsecurity.successHandler.alwaysUseDefault = true 
संबंधित मुद्दे