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>
このエラーは、セッション管理タグでのみ発生しています。いずれにしても、どんな考えもあります。
JNDIルックアップを使用してこれらの値をフェッチしていますが、セッション管理タグのエラーonluを取得しています。
原因:java.lang.IllegalArgumentException:urlは '/'または 'http(s)'で始まる必要があります –
これはSpringセキュリティによってスローされた検証エラーです - JNDIルックアップから取得したURL文字列がnullまたは空の場合、またはURLが末尾にスラッシュまたはhttp(s)で始まらない場合。たとえば、私の場合、loginurl = my-login.html(ここではスラッシュを削除しました)を入力すると、アプリケーションの起動時に同様のエラーが発生します。したがって、urlはスラッシュで始まる相対的なものでも、最初はプロトコルhttpでの絶対的なものでもなければなりません。 – Shailendra