質問編集履歴

8

考え方の変更

2020/09/25 05:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -74,13 +74,19 @@
74
74
 
75
75
  ```
76
76
 
77
- ここでusernameの内容を表示するとregisterで登録したユーザ名が表示されます。
77
+ ~~ここでusernameの内容を表示するとregisterで登録したユーザ名が表示されます。~~
78
+
78
-
79
+ このusernameはログインフォームで入力した値がそのまま入っているだけであり、H2DBの中からfindByUsernameでユーザ情報が見かったわけではない。
80
+
81
+ 原因はおそらくregisterの処理にある。
82
+
83
+
84
+
79
- しかしfindByUsernameを用いて取得したusernameはnullとなっており、結果userの値もnullになっており、UsernameNotFoundExceptionに投げられてエラー警告を出されているようです。
85
+ ~~しかしfindByUsernameを用いて取得したusernameはnullとなっており、結果userの値もnullになっており、UsernameNotFoundExceptionに投げられてエラー警告を出されているようです。
80
86
 
81
87
  ここのリポジトリとエンティティを交えた処理を自分でもうまく理解できておらず原因の修正まで至らない状態です。
82
88
 
83
- usernameの値をuserにコピーできれば動くのではと考えていますがうまくいっていません。
89
+ usernameの値をuserにコピーできれば動くのではと考えていますがうまくいっていません。~~
84
90
 
85
91
 
86
92
 

7

記載箇所の移動

2020/09/25 05:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -206,6 +206,32 @@
206
206
 
207
207
  ```
208
208
 
209
+
210
+
211
+
212
+
213
+ 何卒よろしくお願いします。
214
+
215
+
216
+
217
+ ### 追記
218
+
219
+ プロパティの内容を追記します。
220
+
221
+
222
+
223
+ **application.properties**
224
+
225
+ ```ここに言語を入力
226
+
227
+ spring.datasource.url=jdbc:h2:./testdb
228
+
229
+ spring.jpa.hibernate.ddl-auto=update
230
+
231
+
232
+
233
+ ```
234
+
209
235
  **SecurityConfig**
210
236
 
211
237
  ```ここに言語を入力
@@ -445,27 +471,3 @@
445
471
  </dependency>
446
472
 
447
473
  ```
448
-
449
-
450
-
451
- 何卒よろしくお願いします。
452
-
453
-
454
-
455
- ### 追記
456
-
457
- プロパティの内容を追記します。
458
-
459
-
460
-
461
- **application.properties**
462
-
463
- ```ここに言語を入力
464
-
465
- spring.datasource.url=jdbc:h2:./testdb
466
-
467
- spring.jpa.hibernate.ddl-auto=update
468
-
469
-
470
-
471
- ```

6

config role 依存関係を追記

2020/09/25 04:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,10 @@
8
8
 
9
9
 
10
10
 
11
+ 依存関係
12
+
13
+ ・SpringWeb ・Lombok ・SpringBootDevTool ・Thymeleaf ・SpringDataJPA ・検証 ・SpringSecurity ・H2DB
14
+
11
15
  ### 現在のエラー
12
16
 
13
17
  【DBのユーザでログインする】のプログラムを動かしてみているのですが、ユーザの登録までは動くのですがログインができず、画面上にerror.htmlで設定したエラー警告を出されてしまいます。
@@ -200,7 +204,245 @@
200
204
 
201
205
  }
202
206
 
203
-
207
+ ```
208
+
209
+ **SecurityConfig**
210
+
211
+ ```ここに言語を入力
212
+
213
+ package com.example.demo.config;
214
+
215
+
216
+
217
+ import org.springframework.context.annotation.Bean;
218
+
219
+ import org.springframework.context.annotation.Configuration;
220
+
221
+ import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
222
+
223
+ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
224
+
225
+ import org.springframework.security.config.annotation.web.builders.WebSecurity;
226
+
227
+ import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
228
+
229
+ import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
230
+
231
+ import org.springframework.security.core.userdetails.UserDetailsService;
232
+
233
+ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
234
+
235
+ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
236
+
237
+
238
+
239
+ import com.example.demo.util.Role;
240
+
241
+
242
+
243
+ import lombok.RequiredArgsConstructor;
244
+
245
+
246
+
247
+ @RequiredArgsConstructor
248
+
249
+ @Configuration
250
+
251
+ @EnableWebSecurity
252
+
253
+ public class SeculityConfig extends WebSecurityConfigurerAdapter{
254
+
255
+
256
+
257
+ private final UserDetailsService userDetailsService;
258
+
259
+
260
+
261
+ @Bean
262
+
263
+ public BCryptPasswordEncoder passwordEncoder() {
264
+
265
+ return new BCryptPasswordEncoder();
266
+
267
+
268
+
269
+ }
270
+
271
+
272
+
273
+ @Override
274
+
275
+ public void configure(WebSecurity web) throws Exception{
276
+
277
+ //セキュリティ設定を無視(ignoring)するパスを指定する
278
+
279
+ //通常、CSSやJS、INGなどの静的なリソースを指定する
280
+
281
+ web.ignoring().antMatchers("/js/**","/css/**","/webjars/**");
282
+
283
+ }
284
+
285
+
286
+
287
+ @Override
288
+
289
+ protected void configure(HttpSecurity http)throws Exception{
290
+
291
+ http.authorizeRequests()
292
+
293
+ //「/login」をアクセス可能にする
294
+
295
+ //[/registerを追加]
296
+
297
+ .antMatchers("/login","/register").permitAll()
298
+
299
+ //[/admin]にはAdminユーザのみアクセス可能とする
300
+
301
+ .antMatchers("/admin/**").hasRole(Role.ADMIN.name())
302
+
303
+ .anyRequest().authenticated()
304
+
305
+ .and()
306
+
307
+ .formLogin()
308
+
309
+ //ログイン時のURLを指定
310
+
311
+ .loginPage("/login")
312
+
313
+ //認証後にリダイレクトする場所を指定
314
+
315
+ .defaultSuccessUrl("/")
316
+
317
+ .and()
318
+
319
+ //ログアウトの設定
320
+
321
+ .logout()
322
+
323
+ //ログアウト時のURLを指定
324
+
325
+ .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
326
+
327
+ .and()
328
+
329
+ //Remember-Meの認証を許可する。これを指定するとログイン状態の保存ができる
330
+
331
+ .rememberMe();
332
+
333
+ }
334
+
335
+
336
+
337
+ @Override
338
+
339
+ protected void configure(AuthenticationManagerBuilder auth)throws Exception{
340
+
341
+ //userDetailsServiceを利用してDBからユーザを参照できるようにする
342
+
343
+ auth.userDetailsService(userDetailsService)
344
+
345
+ //auth.userDetailsService(userDetailsService)
346
+
347
+ .passwordEncoder(passwordEncoder());
348
+
349
+ }
350
+
351
+ }
352
+
353
+
354
+
355
+ ```
356
+
357
+
358
+
359
+ **Role**
360
+
361
+ ```ここに言語を入力
362
+
363
+ package com.example.demo.util;
364
+
365
+
366
+
367
+ public enum Role {
368
+
369
+ ADMIN, USER
370
+
371
+
372
+
373
+ }
374
+
375
+
376
+
377
+ ```
378
+
379
+
380
+
381
+
382
+
383
+ **Pom.xml内にSTS以外から導入した依存関係の追記部分**
384
+
385
+ ```ここに言語を入力
386
+
387
+ <!-- SB Admin2を手動追加(STにパッケージが無いので) -->
388
+
389
+ <dependency>
390
+
391
+ <groupId>org.webjars</groupId>
392
+
393
+ <artifactId>startbootstrap-sb-admin-2</artifactId>
394
+
395
+ <version>4.0.6</version>
396
+
397
+ </dependency>
398
+
399
+ <dependency>
400
+
401
+ <groupId>org.webjars</groupId>
402
+
403
+ <artifactId>webjars-locator</artifactId>
404
+
405
+ <version>0.40</version>
406
+
407
+ </dependency>
408
+
409
+ <dependency>
410
+
411
+ <groupId>org.thymeleaf.extras</groupId>
412
+
413
+ <artifactId>thymeleaf-extras-springsecurity5</artifactId>
414
+
415
+ </dependency>
416
+
417
+ <dependency>
418
+
419
+ <groupId>org.webjars</groupId>
420
+
421
+ <artifactId>datatables-buttons</artifactId>
422
+
423
+ <version>1.6.1</version>
424
+
425
+ </dependency>
426
+
427
+ <dependency>
428
+
429
+ <groupId>org.webjars</groupId>
430
+
431
+ <artifactId>datatables-plugins</artifactId>
432
+
433
+ <version>1.10.20</version>
434
+
435
+ </dependency>
436
+
437
+ <dependency>
438
+
439
+ <groupId>org.webjars</groupId>
440
+
441
+ <artifactId>jszip</artifactId>
442
+
443
+ <version>3.1.0</version>
444
+
445
+ </dependency>
204
446
 
205
447
  ```
206
448
 

5

質問への追記

2020/09/25 02:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -207,3 +207,23 @@
207
207
 
208
208
 
209
209
  何卒よろしくお願いします。
210
+
211
+
212
+
213
+ ### 追記
214
+
215
+ プロパティの内容を追記します。
216
+
217
+
218
+
219
+ **application.properties**
220
+
221
+ ```ここに言語を入力
222
+
223
+ spring.datasource.url=jdbc:h2:./testdb
224
+
225
+ spring.jpa.hibernate.ddl-auto=update
226
+
227
+
228
+
229
+ ```

4

追記

2020/09/25 01:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  現在[SpringBoot2 入門: 基礎から実演まで](https://www.amazon.co.jp/Spring-Boot-2-%E5%85%A5%E9%96%80-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AE%9F%E6%BC%94%E3%81%BE%E3%81%A7-ebook/dp/B0893LQ5KY)の8-3章、【DBのユーザでログインする】のプログラム(Spring-Security3)を動かしています。
6
6
 
7
+ フォルダ構成や開発環境、依存関係は全て書に準拠して作成しています。
8
+
7
9
 
8
10
 
9
11
  ### 現在のエラー

3

追記

2020/09/25 01:38

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,10 +8,12 @@
8
8
 
9
9
  ### 現在のエラー
10
10
 
11
- 【DBのユーザでログインする】のプログラムを動かしてみているのですが、ユーザの登録までは動くのですがログインができず、error.htmlで設定したエラー警告を出されてしまいます。
11
+ 【DBのユーザでログインする】のプログラムを動かしてみているのですが、ユーザの登録までは動くのですがログインができず、画面上にerror.htmlで設定したエラー警告を出されてしまいます。
12
12
 
13
13
  何度もコードを見直したのですが、原因がわかりません。
14
14
 
15
+ コンソール上にエラーは表示されていません。
16
+
15
17
 
16
18
 
17
19
  ### 試したこと

2

追記

2020/09/25 01:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Springを勉強し始めた者です。
4
4
 
5
- 現在[SpringBoot2 入門: 基礎から実演まで](https://www.amazon.co.jp/Spring-Boot-2-%E5%85%A5%E9%96%80-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AE%9F%E6%BC%94%E3%81%BE%E3%81%A7-ebook/dp/B0893LQ5KY)の8-3章、【DBのユーザでログインする】のプログラムを動かしています。
5
+ 現在[SpringBoot2 入門: 基礎から実演まで](https://www.amazon.co.jp/Spring-Boot-2-%E5%85%A5%E9%96%80-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AE%9F%E6%BC%94%E3%81%BE%E3%81%A7-ebook/dp/B0893LQ5KY)の8-3章、【DBのユーザでログインする】のプログラム(Spring-Security3)を動かしています。
6
6
 
7
7
 
8
8
 

1

誤字

2020/09/25 01:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,9 @@
20
20
 
21
21
 
22
22
 
23
- error警告が呼び出されてしまう原因として下記コード内のuserの値がNullであることが原因と考えています。
23
+ エラー警告が呼び出されてしまう原因として下記コード内のuserの値がnullであることが原因と考えています。
24
+
25
+
24
26
 
25
27
  **UserDetailsServiceImplから一部記載**
26
28