0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spring Security(認可設定)の備忘録

Last updated at Posted at 2024-11-01

はじめに

解体新書という書籍にて11章のSpring セキュリティの内容について学習中に
画面表示の認可(権限による画面表示の切り替え)が実現不能でした。
一般ユーザでも管理者限定にしているボタンが出現。。
ソースとしてはHTMLに記載を追加するのみでした。
image.png

■menu.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  layout:decorate="~{layout/layout}"
  xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
</head>
<body>
  <div layout:fragment="menu" class="bg-light">
    <ul class="nav nav-pills nav-stacked">
      <li role="presentation">
        <a class="nav-link" th:href="@{'/user/list'}">ユーザ一覧</a>
      </li>
      <li role="presentation" sec:authorize="hasRole('ADMIN')">
        <a class="nav-link" th:href="@{'/admin'}">アドミン専用</a>
      </li>
    </ul>
  </div>
</body>
</html>

問題点

サンプルソースと相違もなく原因が判明しなかった所、Qiitaで回答いただきました。

解決策

①ブラウザのデベロッパーツールでhtmlのソースを表示し、sec:authorize="hasRole('ADMIN')"という記述がそのまま残ってしまっているか確認。
②残っていることを書く確認したので次にpom.xmlにて指定しているthymeleaf-extras-springsecurity周辺の依存関係を確認。
thymeleaf-extras-springsecurity5からthymeleaf-extras-springsecurity6に変更
⇒この対応にて改善しました。(画面表示の認可(権限による画面表示の切り替え)が実現)

根本原因

thymeleaf-extras-springsecurity5はSpring Security5系統をターゲットとしているのに対し、実際に依存関係に含まれているバージョンは6.3であったためでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?