我和neo4j一起研究spring的应用。我想使用数据库中的用户名和密码添加身份验证。下面是我如何使用mysql的代码。我想知道下面使用neo4j的代码的等价物是什么。
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Bean
public PasswordEncoder passwordEncoders(){
return new BCryptPasswordEncoder();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication()
.usersByUsernameQuery("SELECT u.name, u.password, 1 FROM user u WHERE u.name=?")
.authoritiesByUsernameQuery("SELECT u.name, u.role, 1 FROM user u WHERE u.name=?")
.dataSource(dataSource)
.passwordEncoder(passwordEncoders());
}
//...
}
我尝试为datasource创建bean,但得到了beancreationexception。这是我想用的
@Bean
public DataSource getDataSource(){
String NEO4J_URL = System.getenv("NEO4J_URL");
if (NEO4J_URL==null) NEO4J_URL=System.getProperty("NEO4J_URL","jdbc:neo4j:http://localhost:11010");
return new DriverManagerDataSource(NEO4J_URL);
}
还是这个
@Bean
public DataSource getDataSource(){
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName("org.neo4j.driver");
dataSourceBuilder.url("bolt://localhost:11010");
dataSourceBuilder.username("neo4j");
dataSourceBuilder.password("0000");
return dataSourceBuilder.build();
}
1条答案
按热度按时间v09wglhw1#
您需要注册一个自定义安全性
AuthenticationProvider
它可以查询图形以检索具有给定凭据的用户。这样的提供者看起来是这样的:
然后需要将此提供程序注册为安全链中的主authenticationprovider,您可以在安全配置中执行此操作:
然后可以使用基本身份验证查询应用程序
您可以在这里找到一个完整的演示:https://github.com/ikwattro/spring-security-neo4j