質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.64%

Spring Security&Thymeleafで認証・認可

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 1,627

sanezane

score 85

Spring Security&Thymeleafで認証・認可を参考にログイン処理を作成しています。
その中で、templateresolverがインポートできていないというエラーが発生してしまっています。(以下、エラー画面)


 解決したいこと

templateresolverを正常にインポートしたい。

templateresolverが含まれているはずのライブラリ「org.thymeleaf:thymeleaf:3.0.11.RELEASE」はbuile.gradleへ記入しておりビルドエラー等も出ていません。リフレッシュを何回してもtemplateresolverのみエラーとなります。追加で何かライブラリを入れる必要があるのでしょうか。

以下、エラー画面とbuild.gradle

イメージ説明

buildscript {
    ext {
        springBootVersion = '2.1.0.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.Sample'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation('org.springframework.boot:spring-boot-starter-thymeleaf')
    implementation('org.springframework.boot:spring-boot-starter-web')
    runtimeOnly('org.postgresql:postgresql')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    compile('org.springframework.security:spring-security-web')
    compile('org.springframework.security:spring-security-config')
    compile("org.springframework.boot:spring-boot-starter-security:1.4.1.RELEASE")
    compile("org.thymeleaf.extras:thymeleaf-extras-springsecurity4:2.1.3.RELEASE")
    compile("org.springframework.security:spring-security-core:4.2.3.RELEASE")
    compile("org.springframework.security:spring-security-web:4.2.3.RELEASE")
    compile("org.springframework.security:spring-security-config:4.2.3.RELEASE")
    compile("org.thymeleaf:thymeleaf-spring4:3.0.1.RELEASE")
    compile("org.thymeleaf:thymeleaf:3.0.11.RELEASE")

}

なにか足りない手順があるようでしたらご教授お願い致します。

■バージョン情報
STS:sts-4.0.1.RELEASE
java:jdk1.8.0_191

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+3

参考にされているページに下記に引用する注意書きがあります。

Spring Boot は 1.4 系、Spring Securiry は 4.x 系のものを使用します。
バージョンが違う場合、文法がまるで異なるためご注意ください。

sanezaneさんの環境はSpring Boot 2.1、Spring Security 5.1なので、そのページは参考にはならないと思います。
実際、ThymeleafのTemplateresolverクラスが使用できないのはバージョンの違いによるもので、
このクラスがあるのはThymeleaf 2.1までで、Thymeleaf 3.0系では存在しません。

そのページではなく、Spring Boot 2.1とSpring Security 5.1を使って解説されているページを探された方がいいと思いますが、Spring Boot 2.1は最近リリースされたばかりなので、見つけるのは難しいかもしれません。
その場合はバージョンを少しさげて、Spring Boot 2.0系で探してみてください。

それと、質問文に掲載して頂いているbuild.gradleですが、依存関係の定義が少しおかしいようなので見直してみてください。

下記のようにするとSpring Boot 2.1とSpring Security 5.1で開発できると思います。

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation('org.springframework.boot:spring-boot-starter-security')
    implementation('org.springframework.boot:spring-boot-starter-thymeleaf')
    implementation('org.thymeleaf.extras:thymeleaf-extras-springsecurity5')
    implementation('org.springframework.boot:spring-boot-starter-web')
    runtimeOnly('org.postgresql:postgresql')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    testImplementation('org.springframework.security:spring-security-test')
}

追記

下記の点、勘違いをして回答してしまいましたので、訂正させて頂きます。

sanezaneさんの環境はSpring Boot 2.1、Spring Security 5.1なので、そのページは参考にはならないと思います。

Spring Boot 2.1、Spring Security 4.2で環境構築でしたね。

ただ、Spring Boot 2.1とSpring Security 4.2の組み合わせはお勧めできません。Spring Boot 2.1のデフォルトはSpring Security 5.1ですので、こちらの組み合わせをお勧めいたします。
いずれにしてもThymeleafのバージョンに3.0を指定されているのでTemplateresolverクラスは使えませんが、もしバージョンが古くても構わないということであれば、参考にされているページのようにSpring Bootのバージョンを1.4、Thymeleafのバージョンを2.xにすれば使えるようになると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/22 11:36

    大変丁寧に回答いただきましてありがとうございます。
    Spring bootビギナーなのでとりあえず動かしたいな、という思いがあるのですが、Spring Boot 2.1 Spring Security 5.1 Thymeleaf 3.0にて実装できないか試してみて、自分の力では厳しそうだったら動きを確認するためにもバージョンを落とそうと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.64%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る