伪登录认证模式
伪登录认证模式说明
应用场景
- 伪登录采用模拟接入系统登录表单,利用程序将用户名和密码写到相应位置,进行表单提交登录。
- 特点:不需要接入系统改造、支持用户对照
- 接入条件:接入系统登录口表单无验证码、以及其他不固定的登录参数,同时需要获取接入系统的用户账号作对照登录。
- 应用场景:接入系统无法作单点登录改造,但可以提供接入系统用户名和密码。
接入方式
- 用户访问单点登录服务,登录平台,用户访问应用系统时,平台取出该系统对应的用户名和密码,模拟客户访问业务系统登录口,将用户名和密码写到对应的位置,提交表单,直接通过业务系统的登录口进行业务系统,保证业务系统原有的稳定性。对系统改造较少。需要业务系统改造取消登录口的验证码,提供系统用户的密码(明码)。
- 此功能主要是针对客户要做集成的一些老系统(无法改造)所设计的一套接入方法,使用时只需要在维护业务系统用户登录信息(即老系统的用户名,密码),便可以实现对旧系统的单点登录。
- 说明:如果业务系统登录请求支持get提交的话,只需要提供请求地址,以及登录帐号密码即可,提供地址如下:
http://业务系统地址/登录方法?username=帐号&password=密码
补充说明
- 安全性说明:系统采用自身模拟构建一个登录口,将用户名和密码提交到登录验证口,信息采用post方法提交,保证数据的安全性。
- 应用受限:此模式一般应用于可以获取接入系统用户账号,而且登录口不采用验证码。
controller代码,其中fakepage为系统页面路径,假定fakepage=application
@Controller
public class FakeSSOController extends AbstractController {
@Override
public ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String fakepage = request.getParameter("fakepage");
return new ModelAndView(fakepage);
}
}
配置WEB-INF/spring-configuration/applicationContext.xml,新增bean并配置
在WEB-INF/spring-configuration下新增view.xml,配置jsp映射路径,假设有个系统有application,则添加页面如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Application Views -->
<bean id="application" class="org.springframework.web.servlet.view.InternalResourceView"
c:url="/WEB-INF/view-zjs/jsp/default/ui/application.jsp" />
</beans>
web.xml配置
jsp内容(表单内容自动提交)
<body>
<form id="test" action="http://xxx/Login2" method="post">
<input type="hidden" name="UserName" value="test">
<input type="hidden" name="Password" value="test">
</form>
</body>
<script>
window.onload = function(){
document.getElementById("test").submit();
}
</script>
网友评论