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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Spring Security

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

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

Spring Boot

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

Q&A

0回答

723閲覧

Spring Securityを使ったログイン画面の入力値を取得する方法

yrd

総合スコア10

Spring Security

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

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

Spring Boot

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

0グッド

0クリップ

投稿2018/12/26 11:00

編集2018/12/26 23:03

初めての質問ですがよろしくお願いします。

前提・実現したいこと

勉強もかねてwebアプリを作り始めました。
ログインはSpring Securityで制御しています。

パスワードはSHA-256でハッシュ化されたものを使いたいので、入力されたパスワードを取得したいのですが、どのようにとってこればいいかわかりません。
コードの書き方等直すべきところがいろいろあるかもしれませんが、取り急ぎまずはログイン画面での入力値の取り方を教えてほしいです。

環境
・Windows
・Eclipse
・Spring Security
・Spring Boot
・Java

発生している問題・エラーメッセージ

エラーはなし

該当のソースコード

セキュリティ設定

SecurityConfig

1package webapp.config; 2 3import java.io.File; 4import java.security.MessageDigest; 5import java.util.Scanner; 6 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.beans.factory.annotation.Value; 9import org.springframework.context.annotation.Configuration; 10import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 11import org.springframework.security.config.annotation.web.builders.HttpSecurity; 12import org.springframework.security.config.annotation.web.builders.WebSecurity; 13import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 14import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 15 16 17 18 19@Configuration 20@EnableWebSecurity 21public class SecurityConfig extends WebSecurityConfigurerAdapter{ 22 23 /** 24 * ログインID、パスワード取得用ファイルパス 25 */ 26 @Value("${loginInfo.File.Path}") 27 private final String loginInfoFilePath = new String(); 28 29 @Override 30 public void configure(WebSecurity web) { 31 web 32 .ignoring() 33 .antMatchers("/css/system.css"); 34 35 } 36 37 @Override 38 public void configure(HttpSecurity http) throws Exception { 39 http.csrf().disable(); 40 http 41 .authorizeRequests() 42 .antMatchers("/", "/login").permitAll(); 43 http 44 .formLogin() 45 .loginProcessingUrl("/login") 46 .loginPage("/login") 47 .usernameParameter("loginId") 48 .passwordParameter("password") 49 .failureUrl("/login?error") 50 .defaultSuccessUrl("/main"); 51 http 52 .logout() 53 .logoutSuccessUrl("/login"); 54 } 55 56 @Autowired 57 public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 58 59 File loginInfoFile = new File(loginInfoFilePath); 60 61 if(loginInfoFile.exists()) { 62 63 //ファイルからユーザーIDとパスワード(ハッシュ化されたもの)を取得 64 Scanner scanner = new Scanner(loginInfoFile); 65 String username = scanner.nextLine(); 66 String password = scanner.nextLine(); 67 scanner.close(); 68 69 //このあたりで入力されたパスワードを取得したい// 70 71 //HA-256ハッシュ化 72 byte[] cipher_byte; 73 try{ 74 MessageDigest md = MessageDigest.getInstance("ハッシュ化したい文字"); 75 md.update(password.getBytes()); 76 cipher_byte = md.digest(); 77 StringBuilder sb = new StringBuilder(2 * cipher_byte.length); 78 for(byte b: cipher_byte) { 79 sb.append(String.format("%02x", b&0xff) ); 80 } 81 System.out.println( sb ); 82 83 } catch (Exception e) { 84 e.printStackTrace(); 85 } 86 87 auth 88 .inMemoryAuthentication() 89 .withUser(username).password(password).roles("USER"); 90 } 91 } 92} 93

ログイン画面

login.html

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問