用户登录账号存入redis中


首先配置redis编码配置类

@Configuration            
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport{     //防止存入redis中的数据乱码
        @Autowired
        private RedisTemplate redisTemplate;
        @Bean
        public RedisTemplate<String, Object> stringSerializerRedisTemplate() {
            RedisSerializer<String> stringSerializer = new StringRedisSerializer();
            redisTemplate.setKeySerializer(stringSerializer);
            redisTemplate.setValueSerializer(stringSerializer);
            redisTemplate.setHashKeySerializer(stringSerializer);
            redisTemplate.setHashValueSerializer(stringSerializer);
            return redisTemplate;
        }
}

再拦截器中进行登录拦截

@Configuration         //拦截登录配置类
public class ControllerInterceptor implements HandlerInterceptor{
    @Autowired
    private RedisTemplate redisTemplate;
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        if(redisTemplate.opsForValue().get("username")!=null) {
//redisTemplate.expire("username", 30l, TimeUnit.MINUTES); //通过此方法可以设置在redis中的存储时间 每访问一次登录方法都重新设定时间
return true; }else { response.setCharacterEncoding("GBK"); response.getWriter().write("请登录"); return false; } } }
@Configuration    //MVC拦截器
public class InterceptorConfig implements WebMvcConfigurer {
    @Bean             //在spring容器中注册登录拦截器
    public ControllerInterceptor apiInterceptor() {
        return new ControllerInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // registry.addInterceptor(apiInterceptor());
        String[] patterns = { "/**" };
        String[] excludePathPaterns = { "/allusers/selectpwd" };
        // 拦截路径 
        registry.addInterceptor(apiInterceptor()).addPathPatterns(patterns).excludePathPatterns(excludePathPaterns);

    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
                .allowCredentials(true).maxAge(3600).allowedHeaders("*");
    }
}
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM