相关疑难解决方法(0)

在Spring Security with Hibernate中使用jdbcAuthentication

我刚刚完成了一个基于的Spring应用程序inMemoryAuthentication(),现在,经过验证,所有工作都完美无缺,我想使用JDBC身份验证.

我有三种类来处理与数据库的连接:

  1. HibernateConfig,基于此博客文章中提供的代码.

  2. DAO和Entity类,我的数据库中每个表一个(在当前状态下,我有三个:User,Role和User_Role)

  3. 还有一个UserService类,它实现了UserDetailsService.

我在互联网上阅读了一些文章,实际上他们都使用SecurityConfig类的以下配置:

public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private DataSource dataSource;

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
          .jdbcAuthentication()
              .dataSource(dataSource)
              .usersByUsernameQuery(getUserQuery())
              .authoritiesByUsernameQuery(getAuthoritiesQuery());
    }
Run Code Online (Sandbox Code Playgroud)

对我来说有什么问题,因为我的项目中没有Datasource类.我目前的SecurityConfig是这样的:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .jdbcAuthentication()
            .usersByUsernameQuery(getUserQuery())
            .authoritiesByUsernameQuery(getAuthoritiesQuery());
    }

    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf()
                .disable()
            .authorizeRequests()
                .antMatchers("/css/**", "/fonts/**", "/image/**", "/js/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/spring/index").permitAll()
                .loginProcessingUrl("/spring/login").permitAll()
                .usernameParameter("login")
                .passwordParameter("senha")
                .successHandler(new …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jdbc spring-mvc spring-security

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

jdbc ×1

spring ×1

spring-mvc ×1

spring-security ×1