IT修真院·坑乎 | Java(后端),CSS(前端),JavaScript(前端),PM(产品经理),UI(交互设计),QA(测试),Android(安卓APP),iOS(苹果APP),OP(运维),Python(后端)日常在线问答学习平台
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
CSS
JS
Android
IOS
JAVA
OP
PM
UI
QA
求职辅导
Python
运营
动画师
AIGC
亚马逊运营
CSS
JS
Android
IOS
JAVA
OP
PM
UI
QA
求职辅导
Python
运营
动画师
AIGC
亚马逊运营
所有任务
任务1
任务2
任务3
任务4
任务5
任务6
任务7
任务8
任务9
任务10
任务11
全部
问题
已收录
问题
未收录
问题
没有找到答案,去提问>>>
tomcat集群同步
1
1
会话管理
class="cursor-pointer"> 详细描述
服务器端两个tomcat加nginx实现负载均衡,登录问题的话如何实现两个服务器同步,看到网上说用memcache,但是并发大的时候不太好用,请问还有其他的什么好的方法吗
为什么要对用户名和登录时间进行DES加密
1
1
md5/des
class="cursor-pointer"> 详细描述
可以使用其他加密吗,或者说可以加密其他属性吗
拦截器拦截的时候,请求带的cookie,只有这个网页的cookie还是所有的
0
1
class="cursor-pointer"> 详细描述
拦截器拦截的时候,请求带的cookie,只有这个网页的cookie还是所有的cookie?
拦截器不起作用
1
1
interceptor
class="cursor-pointer"> 详细描述
拦截器拦截不到指定的页面
class="cursor-pointer"> 源码
public class LoginInterceptor implements HandlerInterceptor { private static Logger logger = Logger.getLogger(LoginInterceptor.class); @Autowired UserService userService; //ture表示继续流程,false表示中断流程,不会继续调用拦截器 @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { //获取request的cookie Cookie[] cookies = httpServletRequest.getCookies(); //如果httpServletRequest里的cookies为空,就从httpServletResponse的header拿token.拿到后解析 //如果cookies的长度等于0,表示没有cookies,返回登录页面,让用户登录一下,发给用户一个cookie,下次光临的时候用户就有cookie了 if (cookies == null && cookies.length > 0){ logger.info("don't have cookie"); //从httpServletRequest.getHeader拿出token,然后解密 String token = httpServletRequest.getHeader("token"); DesUtil desUtil = new DesUtil(); //取出明文 String mw = desUtil.decrypt(token); //分割字符串 String[] fg = mw.split("\\|"); logger.info("时间戳:"+fg[0].toString()); //取出数字 String timeStamp = fg[0]; Long time = desUtil.decryptToLong(timeStamp); logger.info("时间:"+time); //判断时间戳是否过期 if (System.currentTimeMillis()- time >= 60 * 60 * 1000){ logger.info("token过期"); httpServletResponse.sendRedirect("/goLogin"); return false; } else { String ids = fg[2]; logger.info("用户id:"+ids); Long idis = desUtil.decryptToLong(ids); logger.info("id是:" +idis); //判断是否合法 User user =userService.selectById(idis); logger.info("查到的数据:"+user); //如果为空,就返回登录页面 if (user==null){ httpServletResponse.sendRedirect("/goLogin"); return false; } return true; } }else { logger.info("you have cookie"); //遍历cookies,放入cookie看下是否对应 for (int i = 0; i < cookies.length; i++){ logger.info("cookieName:"+cookies[i].getName()); logger.info("cookieValue"+cookies[i].getValue()); //如果他的cookie与我给他发的token名字相等,那么可以返到页面里 if (cookies[i].getName().equals("token")){ logger.info("token:"+cookies[i].getValue()); String token = cookies[i].getValue(); //解token,取出id 判断id是否不为空, 不为空,去数据库里查这个id对应的用户是否存在,存在通过拦截器,不存在返回 DesUtil desUtil = new DesUtil(); //取出token明文 String mw = desUtil.decrypt(token); String[] str = mw.split("\\|"); String timeStamp = str[0]; Long time = Long.valueOf(timeStamp); if (System.currentTimeMillis() - time>= 60*60 *1000) { logger.info("token过期"); //返回登录页面 httpServletResponse.sendRedirect("/goLogin"); return false; } String idstr = str[2]; Long id = Long.valueOf(idstr); User user = userService.selectById(id); if (user==null){ httpServletResponse.sendRedirect("/goLogin"); return false; } } return true; } } //没有找到登录状态则重定向回登录页面,返回false,不执行controller的方法 httpServletResponse.sendRedirect("/goLogin"); return false; }
interceptor要怎么使用,会达到什么效果?
1
1
interceptor
class="cursor-pointer"> 详细描述
filter现在只用于过滤请求编码格式,interceptor要怎么使用,达到什么效果才是正确的使用了interceptor?
http status 500
0
1
md5/des
class="cursor-pointer"> 详细描述
项目部署后运行显示报错
class="cursor-pointer"> 错误截图
拦截器拦截静态资源
0
1
interceptor
class="cursor-pointer"> 详细描述
将静态资源放在webapp下,拦截器放行整个文件夹下的静态资源无法放行,只能依次添加静态资源后缀,才能放行静态资源。
class="cursor-pointer"> 错误截图
拦截器设置如图。
设置注册的用户名和密码不为空,创建一个校验器,但是运行时会提示请求不对。
0
1
class="cursor-pointer"> 详细描述
这是我的entity类的注解,因为就是用户的用户名和密码不能为空。 @NotBlank(message = "请填写用户名,用户名不能为空") private String userName; @NotBlank(message = "请输入你要设置的密码,密码不能为空") private String passWord; 再就是我的contoller中设置一个参数校验。 //注册 @RequestMapping(value = "/register",method = RequestMethod.POST) public String register(@Validated User user, BindingResult result){ if (user.getUserName()==null ||user.getPassWord()==null || result.hasErrors()) { List
allErrors = result.getAllErrors(); for (ObjectError objectError : allErrors) { System.out.println(objectError.getDefaultMessage()); } return "redirect:/login/1"; //注册时用户名或密码为空,重新注册 } if (userService.register(user)!=0){ logger.info("注册成功,返回登录界面"); return "registerSuccess"; }else { logger.debug("注册失败,用户名已存在"); return "redirect:/login/1"; //重定向到跳转注册而页面 } }
class="cursor-pointer"> 错误截图
主要就是最后的一句话。 2019-07-02 16:04:50,872 [http-nio-8080-exec-6] WARN org.springframework.web.servlet.PageNotFound - Request method 'GET' not supported 我的程序启动都没有问题,最后还是没有校验。
token安全问题
0
1
class="cursor-pointer"> 详细描述
把token放在cookie中响应,如果被其他人获取再请求是不是就可以免密登陆了,这样可以不需要知道密码就登陆到后台。
从JSP的登陆页面,传过来的中文是乱码
0
1
interceptor
class="cursor-pointer"> 详细描述
JSP是登陆页面,输入中文的用户名或密码,到controller中就变为????
class="cursor-pointer"> 错误截图
首页
<
3
4
5
6
7
8
9
>
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
52
5
10