1. 概述
1.1 版本
报表服务器版本 | 插件版本 |
---|---|
11.0 | V1.0 |
1.2 应用场景
数据决策平台默认登出时会自动跳转到登录界面,而有的用户可能需要登出时跳转到自定义的登出界面而非登录页。
1.3 功能介绍
在决策平台中提供登录登出后事件的接口,用于登录登出后自定义操作。
2. 接口
LoginPageProvider
package com.fr.decision.fun;
import com.fr.stable.fun.mark.WebCoalition;
/**
* 登录页插件接口
*/
public interface LoginPageProvider extends WebCoalition {
String MARK_STRING = "LoginPageProvider";
int CURRENT_LEVEL = 1;
/**
* 登录页插件名
* @return 名字
*/
String name();
/**
* 文本描述
* @return 文本描述
*/
String text();
/**
* 封面路径
* @return 封面路径
*/
String coverPath();
/**
* 背景图片路径
* @return 背景图片路径
*/
String imgPath();
/**
* 背景图片高度(单位像素)
* 用来控制背景图片的缩放的高度
* @return 高度
*/
int imgHeight();
/**
* 背景图片宽度(单位像素)
* 用来控制背景图片的缩放的宽度
* @return 宽度
*/
int imgWidth();
}
接口接入
<extra-decision>
<LoginPageProvider class="com.fr.plugin.decision.login.MyLoginPageProvider"/>
</extra-decision>
3. 示例
3.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";
/* 跳转到百度页面 */
}
}
3.2 调整日志等级
安装插件后,点击文件>选项>高级将日志等级(log 级别设置)调整成 INFO,如下图所示:
3.3 查看效果
登录会有日志信息: xxx login, ip: XXX ,登出时有日志信息: xxx logout, ip:XXX,且登出后跳转到百度页面实现效果。
1)登录时,日志显示:
2)登出时,日志显示:
3)登出时,跳转到百度页面: