【发布时间】:2017-10-25 14:34:06
【问题描述】:
我正在尝试使用 this answer 以编程方式使用 Spring Security 添加新用户。但不幸的是我遇到了问题。 代码:
安全配置:
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: 用户缺少权限或对象没有 找到:用户
我明白我为什么得到它:我真的没有桌子Users。而不是这个我有表Employees,所以我需要在这个表中保存新用户。
那么我该如何解决这个错误并创建用户并将其保存到表Employees?
【问题讨论】:
标签: java spring spring-security