1

봄 보안에서는 세션 관리를 구현해야하지만 Tomcat에 응용 프로그램을 배포하는 동안 오류가 발생합니다. 애플리케이션이 속성 파일에서 invalid-session-url 및 expired-url 속성 값을 가져 오려고했지만 오류가 발생했습니다.봄 보안의 속성 파일에서 값을 읽는 중 오류가 발생했습니다. 세션 관리 태그

<security:http entry-point-ref="casAuthenticationEntryPoint" auto-config="true"> 
    <security:intercept-url pattern="/*" access="ROLE_USER"/> 
    <security:custom-filter position="CAS_FILTER" ref="casAuthenticationFilter"/> 
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="#{CAS_server}/logout?service=#{CAS_application}/" delete-cookies="JSESSIONID"/> 
    <security:session-management invalid-session-url="#{CAS_server}/logout?service=#{CAS_application}" session-fixation-protection="newSession" > 
     <security:concurrency-control max-sessions="1" expired-url="#{CAS_server}/logout?service=#{CAS_application}" error-if-maximum-exceeded="true" /> 
    </security:session-management> 
</security:http> 

이 오류는 세션 관리 태그에서만 발생합니다. 누구든지 어떤 생각이 든다.

답변

0

빨리는 봄 보안 응용 프로그램을 구성하고 내 구성은 다음과 같은 포함하며 (세션 관리 태그의 속성 주입주의)

test.properties 잘 작동

mytestservice=MyApp 
loginurl=/my-login.html 
invalidsessionurl=/my-login.html 

봄 보안 설정

<bean id="webPropertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreResourceNotFound" value="true" /> 
     <property name="ignoreUnresolvablePlaceholders" value="true" /> 
     <property name="locations"> 
      <list> 
       <value>classpath:test.properties</value> 
      </list> 
     </property> 
    </bean> 



    <security:http> 
     <security:intercept-url pattern="/my-login.jsp" access="permitAll" /> 
     <security:intercept-url pattern="/**" access="hasRole('USER')" /> 
     <security:form-login login-page="${loginurl}" 
          authentication-failure-url="${loginurl}?error" /> 
     <security:http-basic /> 
     <security:session-management invalid-session-url="${invalidsessionurl}/logout?service=${mytestservice}" session-fixation-protection="newSession" /> 
     <security:logout /> 
    </security:http> 
+0

JNDI 조회를 사용하여이 값을 가져 오지만 세션 관리 태그에 대해 onlu 오류가 발생합니다. \t

+0

발생 원인 : java.lang.IllegalArgumentException : url은 '/'또는 'http (s)'로 시작해야합니다. –

+0

이것은 봄 보안에 의해 유효성 검사 오류가 발생했습니다. - JNDI 조회에서 가져 오는 URL 문자열이 null이거나 비어 있거나 URL이 후행 슬래시 또는 http (s)로 시작하지 않습니다. 예를 들어, 내 경우에 loginurl = my-login.html (여기에 슬래시를 제거한 경우)을 입력하면 응용 프로그램 시작시 비슷한 오류가 발생합니다. 따라서 url은 처음에는 프로토콜 http와 함께 슬래시 또는 절대로 시작해야합니다. – Shailendra

관련 문제