this answerを使用してプログラムでSpring Securityを使用して新しいユーザーを追加しようとしています。しかし残念ながら私は問題を起こす。 コード:新しいユーザーをテーブルに保存しないでください。ユーザー
SecurityConfig:
private JdbcUserDetailsManager employeeDetailsManager;
@Bean(name = "employeeDetailsManager")
public JdbcUserDetailsManager getEmployeeDetailsManager() {
return employeeDetailsManager;
}
アプリケーション:ラインuserDetailsManager.createUser(user)
で
private static void createUser(ApplicationContext context){
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority("supervisor"));
PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
UserDetails user = new User("supervisor1", passwordEncoder.encode("supervisor1"), authorities);
JdbcUserDetailsManager userDetailsManager = (JdbcUserDetailsManager) context.getBean("employeeDetailsManager");
userDetailsManager.createUser(user);//Exception!
Authentication authentication = new UsernamePasswordAuthenticationToken(user, null, authorities);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
私は例外を取得:
java.sql.SQLSyntaxErrorException:ユーザーが権限またはオブジェクトを欠いない が見つかりました:USERS
私はなぜそれを得るのか理解しています。本当にテーブルがありませんUsers
。この代わりに私はテーブルEmployees
を持っているので、このテーブルに新しいユーザを保存する必要があります。
このエラーを修正して、ユーザを作成してテーブルEmployees
に保存するにはどうすればよいですか?
お返事ありがとうございます!しかし、私は 'serDetailsManager.setCreateUserSql(" insert into employee ... .')を使うと 'ユーザに特権がないか、オブジェクトが見つからない:EMPLOYEE'となってしまい、' @Table( Employeeクラスの注釈として「setCreateUserSql」を使用しようとしましたが、これも失敗します: '特権がないかオブジェクトが見つかりません:AUTHORITIES'。今修正する必要があるもの –
特権やオブジェクトが見つからないというエラーがある場合、最も関連性の高いものは、USERS、EMPLOYEE、AUTHORITIESなどの表または列が見つからないということです。それをgoogleとanwserを簡単に見つけることがあります。 – PSo