zoukankan      html  css  js  c++  java
  • 记住我-数据库版(不重要)

    开始吧

    为了让服务器重启也不影响记住登录状态,将用户登录状态信息存入数据库。

    1、 添加数据库依赖

      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.22</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
      </dependency>
    

    2、 创建数据库

    CREATE DATABASE `SpringSecurity_Demo` CHARACTER SET utf8; 
    

    3、 建立数据库连接的配置

    我自己有创建了一个spring的配置文件:spring.xml

    
        <!--配置数据源:用来连接数据库的-->
        <bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
            <property name="url" value="jdbc:mysql://localhost:3306/security?useSSL=false"></property>
            <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        </bean>
    
        <!--jdbcTemplate:用来操作数据库的-->
        <bean class="org.springframework.jdbc.core.JdbcTemplate" name="jdbcTemplate">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
    

    如果要服务器启动读取到spring.xml文件,还要配置web.xml给出配置文件的监听器。

    ···xml


    contextConfigLocation
    classpath:spring.xml



    org.springframework.web.context.ContextLoaderListener

    
    ## 4、 在自己写的配置类SpringSecurityConfig中注入数据源
    
    ```java
      //数据源
      @Autowired
      private DataSource dataSource;
    

    5、 启用令牌仓库

    这也让我get知识点:对象不能再成员位置new

    //重写configure方法进行配置
    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
    
        //启用令牌仓库
        JdbcTokenRepositoryImpl tokenRepository = new JdbcTokenRepositoryImpl();
        tokenRepository.setDataSource(dataSource);
        
        ......
    }
    

    6、 建SpringSecurity登录规定的相应的表

    注意:需要进入 JdbcTokenRepositoryImpl 类中找到创建 persistent_logins 表的 SQL 语句创建

    CREATE TABLE `persistent_logins` (
      `username` varchar(64) NOT NULL,
      `series` varchar(64) NOT NULL,
      `token` varchar(64) NOT NULL,
      `last_used` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`series`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
  • 相关阅读:
    mybatis xml中是sql语句报错: Error creating document instance. Cause: org.xml.sax.SAXParseException: The
    先排序,后取前xx条数据
    SQL判断字段是否为空,为NULL,且连续两个字段降序排列(oracle)
    double数据保留两位
    ajax在echart代码中的正确使用
    List集合去重排序
    如何把项目中的lib下的jar包,本机上的jar包导入项目中引用
    MongoVue如何执行JS文件
    三维叠加标签代码
    beatfullsoup
  • 原文地址:https://www.cnblogs.com/jinyuanya/p/13943234.html
Copyright © 2011-2022 走看看