10月30日

Spring Securityによるログアウトの方法

Spring Security でログアウトを実装するには、設定ファイル spring-security.xml に以下の設定を追加する。

	<sec:http auto-config="true">
		<intercept-url pattern="/**" access="ROLE_USER" />
		<sec:logout
			logout-url="/logout"
			logout-success-url="/"
			invalidate-session="true"
			delete-cookies="JSESSIONID" />
	</sec:http>

sec:logout タグ内の logout-url で指定した URL にアクセスすると、セッション情報が破棄される。

ログアウトを追加したい画面に対応する JSP に、以下のリンクを追加すればよい。
ログイン中のユーザーがここをクリックすると、セッション情報が破棄され、ログアウトする。

<a href="/logout">Logout</a>

トラブルシューティング

DBに登録でエラーになる

Q.新規ユーザーをDBに登録するところで例外が発生して登録できない。
A.コンソールの内容を確認すると、commit()で例外が発生している。メッセージを確認すると、「unique constraint or index violation」と表示。
プライマリキーを自動で割り当てるように、エンティティにアノテーションを追加すれば解決する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です