spring security结合数据库验证用户-注解方式
2017-03-15 19:01
399 查看
项目目录结构如下:
首先数据库的建立和数据导入,以及一些类的依赖参考XML配置方式,需要修改一些配置。
一、在AppConfig文件中添加DataSource的配置
类似于spring-database.xml的配置
修改:
添加SpringSecurityDialect
二、修改SecurityConfig文件
三、html文件的添加和修改参考XML配置方式
启动程序测试即可
首先数据库的建立和数据导入,以及一些类的依赖参考XML配置方式,需要修改一些配置。
一、在AppConfig文件中添加DataSource的配置
@Bean(name = "dataSource") public DriverManagerDataSource dataSource() { DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver"); driverManagerDataSource.setUrl("jdbc:mysql://192.168.11.81:3306/security_learning"); driverManagerDataSource.setUsername("petter"); driverManagerDataSource.setPassword("petter"); return driverManagerDataSource; }
类似于spring-database.xml的配置
修改:
@Bean public SpringTemplateEngine springTemplateEngine() { SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); springTemplateEngine.setTemplateResolver(springResourceTemplateResolver()); springTemplateEngine.addDialect(new SpringSecurityDialect()); return springTemplateEngine; }
添加SpringSecurityDialect
二、修改SecurityConfig文件
package com.petter.config; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import javax.annotation.Resource; import javax.sql.DataSource; /** * 相当于spring-security.xml中的配置 * @author hongxf * @since 2017-03-08 9:30 */ @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Resource private DataSource dataSource; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication().dataSource(dataSource) .usersByUsernameQuery("select username,password, enabled from users where username = ?") .authoritiesByUsernameQuery("select username, role from user_roles where username = ?"); } /** * 配置权限要求 * 采用注解方式,默认开启csrf * @param http * @throws Exception */ @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/dba/**").hasAnyRole("ADMIN", "DBA") .and() .formLogin().loginPage("/login") .defaultSuccessUrl("/welcome").failureUrl("/login?error") .usernameParameter("user-name").passwordParameter("pwd") .and() .logout().logoutSuccessUrl("/login?logout") .and() .exceptionHandling().accessDeniedPage("/403") .and() .csrf(); } }
三、html文件的添加和修改参考XML配置方式
启动程序测试即可
相关文章推荐
- spring security结合数据库验证用户-XML配置方式
- 怎么实现用户匿名访问web,但数据库要用Windows集成验证方式(数据库和web服务器分别在两台机器上)
- springMVC 注解方式 验证用户输入
- CAS Server配置数据库用户验证方式示例
- MFC + Access 用户验证程序(初级数据库编程)
- 基于外部OS验证的数据库用户
- 另外一种WebService的用户验证方式---使用验证票
- AR系列路由器使用SSH用户验证方式为password登录路由器的典型配置
- ACCESS"数据库提示它已经被别的用户以独占方式打开,或没有查看数据的权限"的问题
- 通过试验探索Access 2000/XP 数据库的最佳 NTFS 权限设置Microsoft Jet 数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
- WebService的两种用户验证方式
- "所试图打开的数据库被本机用户(Admin)以独占的方式打开"的错误!
- 用户登录系统数据库验证
- WebService的两种用户验证方式
- asp.net购物车实现-------结合数据库的方式
- Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
- WebService的两种用户验证方式
- 3.JBoss如何配置从数据库里读取登录用户的验证信息
- dwr笔记二之经典用法之和spring结合+验证用户是否存在
- ACCESS"数据库提示它已经被别的用户以独占方式打开,或没有查看数据的权限"的问题