我尝试使用this answer以编程方式添加使用Spring Security的新用户。但遗憾的是我遇到了问题。 代码:
SecurityConfig:
private JdbcUserDetailsManager employeeDetailsManager;
@Bean(name = "employeeDetailsManager")
public JdbcUserDetailsManager getEmployeeDetailsManager() {
return employeeDetailsManager;
}
应用:
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);
}
在userDetailsManager.createUser(user)
行上,我得到例外:
java.sql.SQLSyntaxErrorException:user缺少权限或对象 发现:用户
我理解为什么会得到它:我真的没有桌子Users
。而不是这个我有表Employees
,所以我需要在此表中保存新用户。
那么如何修复此错误并创建用户并将其保存到表Employees
?
答案 0 :(得分:0)
有一些字段不断存储查询。
例如,你必须setCreateUserSql(String createUserSql)
在使用createUser方法之前。
请参考常数并确保填写正确。