# 免登录认证请求
# 场景
为了确保系统安全,默认所有的后台请求都要求登录之后才能访问,如seeyon/ajax.do?method=ajaxAction
,如未登录,直接访问请求会提示无权限或强制退出。
但某些特殊意义的请求需要确保无需登录,比如帐号密码登录认证请求就需要免登录认证。其它三方认证、握手的请求也往往要求不做登录认证。
产品针对不同版本提供了免登录的解决方案。
注意:能力越大责任越大,谁做的免登录认证,谁就需要对请求的安全性负责!
# V7.1SP1及更早版本免登录认证方案
V7.1SP1及更早版本,对于无需登录即可访问的url(比如登录),可以加@NeedlessCheckLogin
注解:
public class MainController{
@NeedlessCheckLogin
public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception {
}
}
7.1SP1以后将匿名请求控制收归平台统一管理,原则上不允许应用随意新增无需登录的请求。
# V8.0~V8.2版本免登录认证方案
V8.0(包含)到V8.2(包含)之间的版本,需要通过修改 ctp-core\src\main\resources\needless_check_login.xml和needless_check_login_recheck.xml
的配置,配置格式:
<beans>
<bean>
<id>/sc.do</id>
<name>com.seeyon.cap4.form.modules.smartCode.controller.SmartCodeController</name>
<methods>
<method>qr</method>
</methods>
</bean>
<bean>
<id>/media/media.do</id>
<name>com.seeyon.ctp.common.media.controller.MediaController</name>
<methods>
<method>mediaShow</method>
</methods>
</bean>
<!-- 不要删除原来默认的配置,仅在最后beans标签中追加客开需要的免登录接口 -->
<bean>
<id>对应springmvc的beanId</id>
<name>对应springmvc的Controller</name>
<methods>
<method>对应Controller下的具体方法,用于限定只开通一个请求</method>
</methods>
</bean>
</beans>
代码位置:
最终生产环境打包位置参考“V8.2SP1及更高版本免登录认证方案”的截图。
# V8.2SP1及更高版本免登录认证方案
自V8.2SP1版本开始,为防止侵入标准产品源码,平台提供了扩展登录认证的能力:
客开只需要在各自 ctp-customize-xxx客开工程\src\main\resources\目录
新建needless_check_login_xxx.xml和needless_check_login_recheck_xxx.xml
的文件名,其中_xxx
名称自定义,最好是插件的英文名:
<beans>
<!-- 在beans标签中追加客开需要的免登录接口 -->
<bean>
<id>对应springmvc的beanId</id>
<name>对应springmvc的Controller</name>
<methods>
<method>对应Controller下的具体方法,用于限定只开通一个请求</method>
</methods>
</bean>
</beans>
代码示例:
最终生产环境打包位置:
编撰人:het
