//package com.mes.config; // // //import com.mes.filter.TokenAuthFilter; //import com.mes.filter.TokenLoginFilter; //import com.mes.security.DefaultPasswordEncoder; //import com.mes.security.TokenLogoutHandler; //import com.mes.security.TokenManager; //import com.mes.security.UnauthEntryPoint; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.context.annotation.Configuration; //import org.springframework.data.redis.core.RedisTemplate; //import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; //import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; //import org.springframework.security.config.annotation.web.builders.HttpSecurity; //import org.springframework.security.config.annotation.web.builders.WebSecurity; //import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; //import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; //import org.springframework.security.core.userdetails.UserDetailsService; // //@Configuration //@EnableWebSecurity //@EnableGlobalMethodSecurity(prePostEnabled = true) //public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter { // // private TokenManager tokenManager; // private RedisTemplate redisTemplate; // private DefaultPasswordEncoder defaultPasswordEncoder; // private UserDetailsService userDetailsService; // // @Autowired // public TokenWebSecurityConfig(UserDetailsService userDetailsService, DefaultPasswordEncoder defaultPasswordEncoder, // TokenManager tokenManager, RedisTemplate redisTemplate) { // this.userDetailsService = userDetailsService; // this.defaultPasswordEncoder = defaultPasswordEncoder; // this.tokenManager = tokenManager; // this.redisTemplate = redisTemplate; // } // // /** // * 配置设置 // * @param http // * @throws Exception // */ // //设置退出的地址和token,redis操作地址 // @Override // protected void configure(HttpSecurity http) throws Exception { // http.exceptionHandling() // .authenticationEntryPoint(new UnauthEntryPoint())//没有权限访问 // .and().csrf().disable() // .authorizeRequests() // .anyRequest().authenticated() // .and().logout().logoutUrl("/admin/acl/index/logout")//退出路径 // .addLogoutHandler(new TokenLogoutHandler(tokenManager,redisTemplate)).and() // .addFilter(new TokenLoginFilter(authenticationManager(), tokenManager, redisTemplate)) // .addFilter(new TokenAuthFilter(authenticationManager(), tokenManager, redisTemplate)).httpBasic(); // } // // //调用userDetailsService和密码处理 // @Override // public void configure(AuthenticationManagerBuilder auth) throws Exception { // auth.userDetailsService(userDetailsService).passwordEncoder(defaultPasswordEncoder); // } // //不进行认证的路径,可以直接访问 // @Override // public void configure(WebSecurity web) throws Exception { // web.ignoring().antMatchers("/api/**"); // } //}