作业帮 > 综合 > 作业

CAS实现登出,CAS已退出 但是系统没有退出.这是为什么?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/03/29 04:49:01
CAS实现登出,CAS已退出 但是系统没有退出.这是为什么?

1.先输入账户密码登陆 CAS,成功登陆系统A
2.点击登出地址连接<li><a href="https://sso.shu.edu.cn/cas/logout"><i class="icon-off"></i>登出</a></li>
3.跳到了 loginOut 页面 ,但是我再次访问项目路径 发现不需要登陆就进入了. 然而执行  cas的login页面还是需要输入 账户密码的
   So.要怎么实现当点登出的 时候  将 系统A的 退出啊?


实现登出必须满足两个条件:
在执行logout操作的时候,要清空session,
在访问页面之前,要判断session是否有值.如果有,则继续访问,如果没有,跳到登录页面.
当然在正常登录系统的时候也要把用户信息写到session中去.
 
你上述的这个问题,说明了你访问的这个CAS系统写的很糟糕.安全漏洞极大.这应该是写一个带登录的系统最基础的问题了.可以说这不是安全漏洞了,这就是个BUG.
再问: 我能继续访问A系统的话 也就是说我A系统的session在登出的时候没有被销毁 对吧? 那我应该怎么改呢??急啊急。。大神帮帮忙
再答: 我上面不是说了嘛,得两个步骤。

具体点的话,你可以在登录的时候把登录的用户写入SESSION中:
User user = new User();
user.setName(登录用户名);
session.setAttribute("runTimeUser",user);

然后在访问页面之前都判断一下Session:
if(Session.getAttribute("runTimeUser")!=null){
User user = (User)Session.getAttribute("runTimeUser");
String userName = user.getName();
//得到用户,正常访问页面;
}else{
//session里没有登录用户,访问失败,跳到登录页面;
}

在注销的时候:
session.invalidate();



哥们,我打了这么多代码帮你,你采纳 下呀