网站防篡改设备 篡改常识的系统最新章节( 二 )

redis写入缓存:
RedisModel model = new RedisModel();model.setModelName(token);model.setModelKey("userInfo");Map<String,Object> params = new HashMap<String,Object>();params.put("userName", customerDto.getUsername());CustomerVo customerVo = new CustomerVo();customerVo.setEmail(customerDto.getEmail());customerVo.setPhone(customerDto.getPhone());CustomerVo userInfo = customerService.queryUserByUserName(customerVo);Map<String,Object> userToken = new HashMap<String,Object>();userToken.put("userToken", token);userToken.put("userInfo", userInfo);model.setModelData(userToken);model.setTimeoutType("M");model.setTimeout(redisTokenTimeOut);resultMap.setCode(CommonResultStatus.SUCCESS.getCode());resultMap.setMessage(CommonResultStatus.SUCCESS.getMessage());//写入为hash实体redisTemplate.opsForHash().put(model.getModelName(), model.getModelKey(), model.getModelData());redisTemplate.expire(model.getModelName(), model.getTimeout(), TimeUnit.MINUTES);@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled = true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter { public static final String AUTHORIZATION_HEADER = "x-token";//Authorization //允许访问的路径 private static final String[] AUTH_WITHOUTLIST = {// -- swagger ui"/v2/api-docs", "/swagger-resources", "/swagger-resources/**", "/configuration/ui","/configuration/security", "/swagger-ui.html", "/webjars/**",// other public endpoints of your API may be appended to this array"/druid/**","/health","/info","/info/**",//druid sql 监听"/hystrix","/hystrix/**","/error","/loggers","/loggers/**","/service-registry/instance-status","/hystrix.stream","/turbine/**","/turbine.stream","/autoconfig","/archaius","/beans","/features","/configprops","/mappings","/auditevents","/env","/env/**","/metrics","/metrics/**","/trace","/trace/**", "/dump","/dump/**", "/jolokia/**","/info/**","/activiti/**", "/logfile/**", "/refresh","/flyway/**", "/liquibase/**","/heapdump","/heapdump/**","/v1/authcenter/login","/v1/authcenter/fiberhomeLogin","/v1/authcenter/registered",//登录URL"/v1/authcenter/queryAuthInfo",//鉴权URL"/u/sms/sendPhone","/citry/getChineseProvinces","/code/getCaptchaImage","/u/sms/forgetEmailPwd","/u/sms/sendEmail","/citry/getOtherCoutryList","/upload/pngDir/*","/job/getJobList","/u/sms/sendLoginEmail","/v1/authcenter/queryUserInfoByMap","/v1/authcenter/forgetPwd","/diagram-viwmer/**","/editor-marketing/**","/modeler.html","/actuator/health" }; @Autowired private SecurityUserDetailsService securityUserDetailsService; @Autowired private AuthLogoutSuccessHandler authLogoutSuccessHandler; @Autowired private JWTTokenUtils tokenProvider; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception {//自定义获取用户信息设置密码加密和默认用DaoAuthenticationProvider加密任选auth.userDetailsService(securityUserDetailsService).passwordEncoder(passwordEncoder()); } @Override protected void configure(HttpSecurity http) throws Exception {// 配置请求访问策略// 关闭CSRF、CORShttp.cors().disable().csrf().disable()// 由于使用Token,所以不需要Session.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()// 验证Http请求.authorizeRequests()// 允许所有用户访问首页 与 登录.antMatchers(AUTH_WITHOUTLIST).permitAll()// 其它任何请求都要经过认证通过.anyRequest().authenticated().and()// 用户页面需要用户权限// 设置登出.logout().logoutSuccessHandler(authLogoutSuccessHandler).permitAll();// 添加JWT filter 在http.addFilterBefore(new JwtAuthenticationTokenFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class); }//判断是否有权限分三步 后台security 已经对地址做了拦截了,请求头必须设置请求参数参数1:判断token是否存在(security 已实现)2:token是否有效(基于redis) 3:访问API是否有权限缓存结构:
["java.util.HashMap",{"userToken": "ISOFTSTONE.eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI0MmRkMGJlZmQwNDg0MmMyODhiN2QxZjVkYTcwMWNjNiIsImF1dGgiOiJ1c2VyIiwiZXhwIjoxNjM1MjMyMzk4fQ.9VqMD0vyu-pe42moNd1QeNWP4KrBvvNYJKDQdQPDi_YKKXPG3l90dNn5wgK2rZXs471Pmeby-BdHPHd2-iNKfA","userInfo": ["com.common.vo.CustomerVo",{"id": "42dd0befd04842c288b7d1f5da701cc6","createTime": ["java.util.Date","2021-06-10"],"updateTime": ["java.util.Date","2021-06-10"],"deleted": 0,"phone": "13797004616","password": "123456","email": "sunlin@fiberhome.com","status": "3","isEnable": "1","userType": "1","roleId": null,"country": null,"provinces": null,"company": null,"jobs": null,"realName": "孙","fiberhomeEmail": null,"department": null,"registerWay": null,"onlineTime": null,"expireDate": null,"registerIp": null,"language": null,"equipmentType": null,"accountType": null,"platformType": null,"companyType": null,"userdesc": null,"userid": "0210990342","typeConfig": null,"isActive": "1","postname": "副总经理","did1": "701387","dname1": "财务管理部","did2": null,"dname2": null,"did3": null,"dname3": null,"did4": null,"dname4": null,"postid": "803711"}]}]

推荐阅读