18.6 url传参登录方法设置

概述

一些场景下,应用系统仅需要在特定位置访问报表中已定义好的特定的用户资源,而这些资源需要在已登录状态下使用,这种情况下可以采用简单URL用户名密码传参方式实现登录的同时访问目标地址。

设置方法

使用URL传参登录功能,只需在正常的访问连接中加入两个参数:loginname和token,例如:

访问链接:http://127.0.0.1:8081/report/Report-EntryAction.do?reportId=REPORT-C9FA7759EC400001FB6613C218A01EC0

5.6.08版本之前传参登录写法

url传参链接:http://127.0.0.1:8081/report/Report-EntryAction.do?reportId=REPORT-C9FA7759EC400001FB6613C218A01EC0&loginname=admin&token=1

5.6.08版本之后传参登录写法

转base64后链接:http://127.0.0.1:8081/report/Report-EntryAction.do?reportId=REPORT-C9FA7759EC400001FB6613C218A01EC0&loginname=admin&token=MQ==

使用明文将用户名和密码传入,密码不能带有特殊字符,否则将会被拦截,想要加密可以采用TokenValidator验证。

TokenValidator验证

TokenValidator 验证是报表中内置提供的基于 Spring Security PreAuthenticatedAuthenticationProvider 认证接口实现的一种身份认证集成方式,它不针对特定地址进行登录验证,而是对所有后台请求地址,依据请求的参数名,调用自定义实现的身份验证逻辑,然后完成登录,最后继续原请求的内容。它目前在简单URL登录集成方法中被使用。

使用方法

需要编写一个 com.neusoft.saca.dataviz.authentication.springsecurity.filterlogin.usertoken. TokenValidator (dataviz-security.jar) 的实现类:

public interface TokenValidator {

    /** 
     * 身份验证,传入的参数对应请求中传入的两个参数
     */
    public UserBO validate(String loginName, String token) throws Exception;
}

返回值中的属性:

属性 类型 是否能为空 描述
id String 用户ID(唯一标识)
name String 用户名称
role Integer 系统角色:0:普通用户,1:管理员,默认为0
state Integer 状态,-1:无效,1:有效,默认为1

加入到后台服务后,于后台服务applicationContext-security.xml中添加bean配置:

<beans:bean id="tokenValidator" class="ValidatorImplementationClassName" />

其中 ValidatorImplementationClassName 为实现类的完整类路径。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""