🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

Spring Boot

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

Q&A

解決済

1回答

2283閲覧

spring securityのデフォルトページが出てくる

nata425

総合スコア2

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

Spring Boot

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

0グッド

0クリップ

投稿2020/12/24 05:08

編集2020/12/24 05:09

spring securityのログイン認証画面を作っています。
しかし、localhostで/loginFormにアクセスしても、
表示させたいloginForm.htmlではなく、添付したspring securityのデフォルトページのようなものがでてきます。
loginForm.htmlを表示させる場合、どのようにしたらよいか、ご教示願います。

buildgradle

1plugins { 2 id 'org.springframework.boot' version '2.4.1' 3 id 'io.spring.dependency-management' version '1.0.10.RELEASE' 4 id 'java' 5} 6group = 'com.example' 7version = '0.0.1-SNAPSHOT' 8sourceCompatibility = '1.8' 9 10repositories { 11 mavenCentral() 12} 13dependencies { 14 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 15 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 16 implementation 'org.springframework.boot:spring-boot-starter-web' 17 // springsecurityを依存関係に追加 18 implementation 'org.springframework.boot:spring-boot-starter-security' 19 // thymeleaf拡張ライブラリを依存関係に追加 20 implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 21 runtimeOnly 'mysql:mysql-connector-java' 22} 23

loginService

1@EnableWebSecurity 2public class SecurityConfig extends WebSecurityConfigurerAdapter { 3 4 // ハッシュアルゴリズム 5 @Bean 6 public PasswordEncoder passwordEncoder() { 7 return new BCryptPasswordEncoder(); 8 } 9 10 @Override 11 protected void configure(HttpSecurity http) throws Exception { 12 // 認可の設定 13 http.authorizeRequests() 14 .antMatchers("/loginForm").permitAll() // loginFormは全ユーザーからアクセス可能 15 .anyRequest().authenticated(); // 許可した項目以外は認証を求める 16 17 // ログイン処理 18 http.formLogin() 19 .loginProcessingUrl("/login") //ログイン処理のパス 20 .loginPage("/loginForm") //ログインページの指定 21 .usernameParameter("email") //ログインページのメールアドレス 22 .passwordParameter("password") //ログインページのパスワード 23 .defaultSuccessUrl("/home", true) //ログイン成功時のパス 24 .failureUrl("/loginForm?error"); //ログイン失敗時のパス 25 26 // ログアウト処理 27 http.logout() 28 .logoutUrl("/logout") // ログアウト処理パス 29 .logoutSuccessUrl("/loginForm"); //ログアウト成功パス 30 }

loginController

1@Controller 2public class LoginController { 3 4 @GetMapping("/loginForm") 5 public String getLogin() { 6 return "loginForm"; 7 } 8}

loginForm

1<body> 2 <div th:if="${param.error}"> 3 <p>ユーザ名またはパスワードが違います。</p> 4 </div> 5 <form th:action="@{/login}" method="post"> 6 <div> 7 <label>メールアドレス: </label> 8 <input type="email" name="email"> 9 </div> 10 <div> 11 <label>パスワード: </label> 12 <input type="password" name="password"> 13 </div> 14 <div> 15 <input type="submit" value="ログイン"> 16 <!-- 自動でトークンを追加してくれている --> 17 <!-- <input type="hidden" name="_csrf" 18 value="33c7b13f-f3e2-44de-b0b1-eadb5e6ffbdb"> --> 19 </div> 20 </form> 21</body> 22```![出てきてしまうデフォルト画像](7182b869b0f1b7f77dc57e63aa84ab4e.png)

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

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

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

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

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

guest

回答1

0

自己解決

原因がわからないのですが、作り直したら自己解決しました。

投稿2020/12/25 02:40

nata425

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問