美文网首页
笔记2:添加用户验证

笔记2:添加用户验证

作者: LeeSpringFly | 来源:发表于2017-12-13 15:25 被阅读0次

spring security 主要用于验证各种用户操作权限,下面开始添加用户信息验证
测试采用Idea所以,文件结构以Idea为基础

文件结构

因为验证成功后,页面会导航到"/",所以添加一个Controller

|java.com.lee.config
|---- WebAppinitializer
|---- WebConfig
|---- WebSecurityConfig
|---- SecurityWebApplicationInitializer
|java.com.lee.controller
|----HomeController
|
|webapp/WEB-INF/views
|----loginOK.jsp

HomeController.java

@Controller
public class HomeController {

  @RequestMapping("/")
  public String loginOK() {
      return "loginOK";
  }
}

loginOK.jsp // 只需要显示登录成功

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>登录成功</h1>
</body>
</html>

基于内存的用户存储,进行验证

回到添加验证规则文件WebSecurityConfig.java,添加下面代码

@Bean
  public UserDetailsService userDetailsService() {
      InMemoryUserDetailsManager manager 
          = new InMemoryUserDetailsManager();
      manager.createUser(              // 添加用户信息
          User.withUsername("user")    // 账户名
              .password("password")    // 密码
              .roles("USER")           // 权限
              .build());
      manager.createUser(
              User.withUsername("root").password("rootPWD").roles("USER").build());
      return manager;
  }

这里添加了2个账户信息,user和root,并且拥有相同的权限USER

基于JDBC数据库表进行验证

回到WebSecurityConfig.java文件中,将之前保存在内存中的配置信息删除掉,添加新代码

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

  @Autowired
  private DataSource dataSource;   // 定义的数据源

  @Bean
  public DataSource dataSource() {
      Properties prop = new Properties();
      DriverManagerDataSource ds = new DriverManagerDataSource();

      try {
          String path = getClass().getClassLoader().getResource("db.properties").getPath();
          FileInputStream in = new FileInputStream(path);
          prop.load(in);

          String driver = prop.getProperty("driver");
          String url = prop.getProperty("url");
          String username = prop.getProperty("uname");
          String password = prop.getProperty("pass");

          ds.setDriverClassName(driver);
          ds.setUrl(url);
          ds.setUsername(username);
          ds.setPassword(password);
          in.close();
      } catch (FileNotFoundException e) {
      } catch (IOException e) {
      }

      return ds;
  }

  @Autowired
  public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
      auth
              .jdbcAuthentication()
              .dataSource(dataSource)
              .usersByUsernameQuery(
                  "select username, password, enable from t_user where username = ?")
              .authoritiesByUsernameQuery(
                  "select username, authority from t_user where username = ?");
  }
}

数据源内容需要数据库连接配置文件db.properties,放在resources文件夹中

driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/spring_security_demo
uname=root
pass=1234

测试

如果运行成功,并且输入上面给定的用户信息,网页会自动调转到loginOK.jsp页面
如果输入的信息错误会像下面这样(图1)

log2_login_error.png

相关文章

  • 笔记2:添加用户验证

    spring security 主要用于验证各种用户操作权限,下面开始添加用户信息验证测试采用Idea所以,文件结...

  • 2019-01-03

    Form表单验证(用户请求验证+生成HTML标签) 需求:添加用户界面显示HTML标签提交:数据验证成功之后保存错...

  • MongoDB自学记录【四】----->mongodb分片集群添

    MongoDB默认是没有用户权限验证的,所以我们需要手动去添加用户,以便可以更加安全的进行访问,在没添加用户验证之...

  • 2018-08-27jmeter验证用户名流程

    jmeter验证用户名流程: 1.添加脚本 2.测试计划-改名,如接口测试 3.添加HTTP请求默认值 4.添加线...

  • 2018-08-27第十六天

    jmeter验证用户名流程: 1.添加脚本 2.测试计划-改名,如接口测试 3.添加HTTP请求默认值 4.添加线...

  • 系统操作-用户管理

    用户 添加用户:useradd user1验证用户:id user1删除用户:userdel -r user1 (...

  • 实现注册页面&验证码的认证

    注册//1.给注册按钮添加点击事件//2.获取到用户注册的信息//3.对用户输入的信息做验证//4.调用注册接口 ...

  • Centos7服务器配置

    阿里云登录 输入密码xshell验证登录 root用户下添加普通用户adduser haowenpasswd ha...

  • MVC中Forms身份验证身份验证流程

    验证流程 一、用户登录1、验证表单:ModelState.IsValid2、验证用户名和密码:通过查询数据库验证3...

  • CDH6安装(二)——集群基础配置

    创建主机用户 添加cdh用户(全部机子) 操作使用用户 验证结果使用sudo命令 配置主机名 配置hosts文件 ...

网友评论

      本文标题:笔记2:添加用户验证

      本文链接:https://www.haomeiwen.com/subject/qhoaixtx.html