1. 版本编辑
报表服务器版本 | JAR 包 | 插件版本 |
---|---|---|
10.0 | 2019-05-20 | V1.0 |
2. 描述编辑
应用场景:10.0决策平台默认登出时会自动跳转到登录界面,而有的用户可能需要登出时跳转到自定义的登出界面而非登录页。
功能介绍:在决策平台中提供登录登出后事件的接口,用于登录登出后自定义操作。
3. 接口编辑
LogInOutEventProvider
/**
* 用于监听登录登出事件的接口,使用的时候尽可能继承抽象类{@link AbstractLogInOutEventProvider}
* Created by zhouping on 2018/12/13.
*/
public interface LogInOutEventProvider extends Mutable {
String MARK_STRING = "LogInOutEventProvider";
int CURRENT_LEVEL = 2;
/**
* 登录后事件
*
* @param result 登录结果
*/
void loginAction(LogInOutResultInfo result);
/**
* 登出后事件
*
* @param result
* @return 登录后跳转url,null/""则跳转登录页
*/
String logoutAction(LogInOutResultInfo result);
}
接口接入
<extra-decision>
<LogInOutEventProvider class="com.fr.plugin.demo.loginout.event.CustomLogInOutEventProvider"/>
</extra-decision>
4. 示例编辑
4.1 安装 DEMO 插件
这里提供 fr-plugin-demo.loginout.event-1.0.zip,点击下载后,本地安装该插件,安装后获得如下的接口:
package com.fr.plugin.demo.loginout.event;
import com.fr.decision.fun.impl.AbstractLogInOutEventProvider;
import com.fr.decision.webservice.login.LogInOutResultInfo;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.transform.FunctionRecorder;
import com.fr.web.utils.WebUtils;
@FunctionRecorder
public class CustomLogInOutEventProvider extends AbstractLogInOutEventProvider {
@Override
public void loginAction(LogInOutResultInfo result) {
FineLoggerFactory.getLogger().info(result.getUsername() + " login, ip: " + WebUtils.getIpAddr(result.getRequest()));
/* 日志输出登录信息 */
super.loginAction(result);
}
@Override
public String logoutAction(LogInOutResultInfo result) {
FineLoggerFactory.getLogger().info(result.getUsername() + " logout, ip: " + WebUtils.getIpAddr(result.getRequest()));
/* 日志输出登出信息 */
return "http://www.baidu.com";
/* 跳转到百度页面 */
}
}
4.2 调整日志等级
安装插件后,点击文件>选项>高级将日志等级(log 级别设置)调整成 INFO,如下图所示:
4.3 查看效果
登录会有日志信息: xxx login, ip: XXX ,登出时有日志信息: xxx logout, ip:XXX,且登出后跳转到百度页面实现效果。
1)登录时,日志显示:
2)登出时,日志显示:
3)登出时,跳转到百度页面: