[エラー]ログインできません
9731 ワード
-認証関連部分に問題があるようです.
認証と関連クエリーが飛んでいます。
これは.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.passwordEncoder(passwordEncoder())
.usersByUsernameQuery("select username, password, enabled "
+ "from user "
+ "where username = ?")
.authoritiesByUsernameQuery("select u.username, r.name "
+ "from user_role ur inner join user u on ur.user_id = u.id "
+ "inner join role r on ur.role_id = r.id "
+ "where u.username = ?");
}
ここで間違いがあったからです.以上のクエリの変更
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.passwordEncoder(passwordEncoder())
.usersByUsernameQuery("select username, password, enabled "
+ "from users "
+ "where username = ?")
.authoritiesByUsernameQuery("select u.username, r.name "
+ "from user_role ur inner join user u on ur.user_id = u.id "
+ "inner join role r on ur.role_id = r.id "
+ "where u.username = ?");
}
("select username, password, enabled "
+ "from users "
+ "where username = ?")
のfrom userセクションからfrom userに変更します.今はinner queryに飛ぶことができます.
しかし、Invalideユーザー名とpasswordのalertが現れた.
理由:クエリーのtable名が間違っています...
select u.username, r.name from user_role ur inner join user u on ur.user_id = u.id inner join role r on ur.role_id = r.id where u.username = 'b'
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.passwordEncoder(passwordEncoder())
.usersByUsernameQuery("select username, password, enabled "
+ "from users "
+ "where username = ?")
.authoritiesByUsernameQuery("select u.username, r.name "
+ "from user_role ur inner join user u on ur.user_id = u.id "
+ "inner join role r on ur.role_id = r.id "
+ "where u.username = ?");
}
("select username, password, enabled "
+ "from users "
+ "where username = ?")
ユーザー名認証権限を使用するクエリーセクションと同じです....... 上のクエリーはハードコーディングのクエリーで、MySQL構文と私が使っているtable名を正しく記入する必要があります.
ユーザー->user、role->roleに変更する必要があります.
Reference
この問題について([エラー]ログインできません), 我々は、より多くの情報をここで見つけました https://velog.io/@ynoolee/error로그인이-안된다テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol