用戶登錄賬號存入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