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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

2851閲覧

Spring Security&Thymeleafで認証・認可

sanezane

総合スコア91

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

2クリップ

投稿2018/11/21 07:41

編集2018/11/21 07:42

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


解決したいこと

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

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

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

イメージ説明

build

1buildscript { 2 ext { 3 springBootVersion = '2.1.0.RELEASE' 4 } 5 repositories { 6 mavenCentral() 7 } 8 dependencies { 9 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 10 } 11} 12 13apply plugin: 'java' 14apply plugin: 'eclipse' 15apply plugin: 'org.springframework.boot' 16apply plugin: 'io.spring.dependency-management' 17 18group = 'com.Sample' 19version = '0.0.1-SNAPSHOT' 20sourceCompatibility = 1.8 21 22repositories { 23 mavenCentral() 24} 25 26 27dependencies { 28 implementation('org.springframework.boot:spring-boot-starter-data-jpa') 29 implementation('org.springframework.boot:spring-boot-starter-thymeleaf') 30 implementation('org.springframework.boot:spring-boot-starter-web') 31 runtimeOnly('org.postgresql:postgresql') 32 testImplementation('org.springframework.boot:spring-boot-starter-test') 33 compile('org.springframework.security:spring-security-web') 34 compile('org.springframework.security:spring-security-config') 35 compile("org.springframework.boot:spring-boot-starter-security:1.4.1.RELEASE") 36 compile("org.thymeleaf.extras:thymeleaf-extras-springsecurity4:2.1.3.RELEASE") 37 compile("org.springframework.security:spring-security-core:4.2.3.RELEASE") 38 compile("org.springframework.security:spring-security-web:4.2.3.RELEASE") 39 compile("org.springframework.security:spring-security-config:4.2.3.RELEASE") 40 compile("org.thymeleaf:thymeleaf-spring4:3.0.1.RELEASE") 41 compile("org.thymeleaf:thymeleaf:3.0.11.RELEASE") 42 43} 44

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

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で開発できると思います。

Gradle

1dependencies { 2 implementation('org.springframework.boot:spring-boot-starter-data-jpa') 3 implementation('org.springframework.boot:spring-boot-starter-security') 4 implementation('org.springframework.boot:spring-boot-starter-thymeleaf') 5 implementation('org.thymeleaf.extras:thymeleaf-extras-springsecurity5') 6 implementation('org.springframework.boot:spring-boot-starter-web') 7 runtimeOnly('org.postgresql:postgresql') 8 testImplementation('org.springframework.boot:spring-boot-starter-test') 9 testImplementation('org.springframework.security:spring-security-test') 10}

追記

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

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/21 13:16

編集2018/11/21 14:59
rubytomato

総合スコア1752

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanezane

2018/11/22 02:36

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問