`

平台登录插件开发和配置

阅读更多
新版本平台登录插件开发和配置
编写自己的插件,以便在登录后执行相应的操作:
public class TicketUserPasswordLoginModule extends UserPasswordLoginModule {
	
	private static Logger logger = Logger.getLogger(TicketUserPasswordLoginModule.class); 

	@Override
	protected void buildCallback(CheckCallBackWrapper checkCallBack, User user,
			String userName, String password, String password_i,
			Organization org) throws ManagerException {
		
		super.buildCallback(checkCallBack, user, userName, password, password_i, org);
		
		try {
			//dosomething here 业务
			
			//获取业务信息设置到会话对象中(登录时可以在这里将登录的酒店信息设置到会话属性中)
			String ticket = AppHelper.getTicket(userName, user.getUserWorknumber());			
			checkCallBack.setUserAttribute("ticket", ticket);
			
			//系统中获取ticket对象的方法:
			AccessControl accesscontroler = AccessControl.getAccessControl();
			String ticket_ = accesscontroler.getUserAttribute("ticket");
			
		} catch (Exception e) {
			logger.error(e);
		}
		
	}

	/**
	 * 重置用户属性
	 * 业务中使用方法:AccessControl.getAccessControl().resetUserAttribute("hotelcode");
	 */
	@Override
	
	public void resetUserAttribute(HttpServletRequest request,
			CheckCallBack checkCallBack, String userAttribute) {
		String userName = (String)checkCallBack.getUserAttribute("userAccount");
		String userAttributevalue = "";//........;//获取最新的属性值			
		checkCallBack.setUserAttribute(userAttribute, userAttributevalue);//更新属性值
		// TODO Auto-generated method stub
		//super.resetUserAttribute(request, checkCallBack, userAttribute);
	}

	/**
	 * 更新用户会话属性,酒店切换时可以调用下面的方法更新登录的酒店信息:
	 * 业务中调用方法:AccessControl.getAccessControl().resetUserAttributes();
	 */
	@Override
	public void resetUserAttributes(HttpServletRequest request,
			CheckCallBack checkCallBack) {
		//根据需要更新属性值
		try {
			String userName = (String)checkCallBack.getUserAttribute("userAccount");
			String userWorknumber = (String)checkCallBack.getUserAttribute("userWorknumber");
			String ticket = AppHelper.getTicket(userName, userWorknumber);			
			checkCallBack.setUserAttribute("ticket", ticket);
		} catch (Exception e) {
			logger.error(e);
		}
	}
}



写好自己的登录插件后,就可以修改文件resources/config-manager.xml的内容:
<loginModule name="console" controlFlag="required" debug="true" registTable="DB" class="org.frameworkset.platform.security.authenticate.UserPasswordLoginModule" /> 

为:
<loginModule name="console" controlFlag="required" debug="true" registTable="DB" class="com.bboss.application.util.TicketUserPasswordLoginModule" /> 

即可。

备注
平台后台java程序中获取当前登录用户会话对象及用户属性方法:
com.frameworkset.platform.security.AccessControl accesscontroler = com.frameworkset.platform.security.AccessControl.getAccessControl();

String userID = accesscontroler.getUserID();//获取用户id
	String userName = accesscontroler.getUserName();//获取用户中文名
	accesscontroler.getUserAttribute(userAttribute)
	String worknumber = accesscontroler.getUserAttribute("userWorknumber");//获取用户工号
	String fullorgjob = accesscontroler.getUserAttribute("fullorgjob");//获取用户带层级的机构岗位信息
	String orgjob = accesscontroler.getUserAttribute("orgjob");//获取用户直属机构岗位信息


获取用户登录信息

新版平台获取用户
userAccount:用户账号
userID:用户唯一标识
depart:部门名称
departId:部门id
job:用户岗位信息
title:中文名称(userAccount);
userName:用户中文名称
userSex:用户性别
worknumber:工号
telphone:手机号码
userLeaderid:主管id
userLeaderName:主管名称
userLeaderAccount:主管账号


同时系统可以扩展自己的用户loginmodule,在buildCallback方法中添加自己的用户属性。

2.老版本平台登录插件开发和配置
编写自己的插件,以便在登录后执行相应的操作:
package com.bboss.application.util;


import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;

import com.frameworkset.platform.security.AccessControl;
import com.frameworkset.platform.security.authentication.CheckCallBack;
import com.frameworkset.platform.security.authentication.CheckCallBackWrapper;
import com.frameworkset.platform.sysmgrcore.authenticate.UserPasswordLoginModule;
import com.frameworkset.platform.sysmgrcore.entity.Organization;
import com.frameworkset.platform.sysmgrcore.entity.User;
import com.frameworkset.platform.sysmgrcore.exception.ManagerException;


public class TicketUserPasswordLoginModule extends UserPasswordLoginModule {
	
	private static Logger logger = Logger.getLogger(TicketUserPasswordLoginModule.class); 

	@Override
	protected void buildCallback(CheckCallBackWrapper checkCallBack, User user,
			String userName, String password, String password_i,
			Organization org) throws ManagerException {
		
		super.buildCallback(checkCallBack, user, userName, password, password_i, org);
		
		try {
			//dosomething here 业务
			
			//获取业务信息设置到会话对象中(登录时可以在这里将登录的酒店信息设置到会话属性中)
			String ticket = AppHelper.getTicket(userName, user.getUserWorknumber());			
			checkCallBack.setUserAttribute("ticket", ticket);
			
			//系统中获取ticket对象的方法:
			AccessControl accesscontroler = AccessControl.getAccessControl();
			String ticket_ = accesscontroler.getUserAttribute("ticket");
			
		} catch (Exception e) {
			logger.error(e);
		}
		
	}

	/**
	 * 重置用户属性
	 * 业务中使用方法:AccessControl.getAccessControl().resetUserAttribute("hotelcode");
	 */
	@Override
	
	public void resetUserAttribute(HttpServletRequest request,
			CheckCallBack checkCallBack, String userAttribute) {
		String userName = (String)checkCallBack.getUserAttribute("userAccount");
		String userAttributevalue = "";//........;//获取最新的属性值			
		checkCallBack.setUserAttribute(userAttribute, userAttributevalue);//更新属性值
		// TODO Auto-generated method stub
		//super.resetUserAttribute(request, checkCallBack, userAttribute);
	}

	/**
	 * 更新用户会话属性,酒店切换时可以调用下面的方法更新登录的酒店信息:
	 * 业务中调用方法:AccessControl.getAccessControl().resetUserAttributes();
	 */
	@Override
	public void resetUserAttributes(HttpServletRequest request,
			CheckCallBack checkCallBack) {
		//根据需要更新属性值
		try {
			String userName = (String)checkCallBack.getUserAttribute("userAccount");
			String userWorknumber = (String)checkCallBack.getUserAttribute("userWorknumber");
			String ticket = AppHelper.getTicket(userName, userWorknumber);			
			checkCallBack.setUserAttribute("ticket", ticket);
		} catch (Exception e) {
			logger.error(e);
		}
	}
}


写好自己的登录插件后,就可以修改文件resources/config-manager.xml的内容:
<loginModule name="console" controlFlag="required" debug="true" registTable="DB" class="com.frameworkset.platform.sysmgrcore.authenticate.UserPasswordLoginModule" /> 

为:
<loginModule name="console" controlFlag="required" debug="true" registTable="DB" class="com.bboss.application.util.TicketUserPasswordLoginModule" /> 

即可。

备注
平台后台java程序中获取当前登录用户会话对象及用户属性方法:
com.frameworkset.platform.security.AccessControl accesscontroler = com.frameworkset.platform.security.AccessControl.getAccessControl();

String userID = accesscontroler.getUserID();//获取用户id
	String userName = accesscontroler.getUserName();//获取用户中文名
	accesscontroler.getUserAttribute(userAttribute)
	String worknumber = accesscontroler.getUserAttribute("userWorknumber");//获取用户工号
	String fullorgjob = accesscontroler.getUserAttribute("fullorgjob");//获取用户带层级的机构岗位信息
	String orgjob = accesscontroler.getUserAttribute("orgjob");//获取用户直属机构岗位信息


获取用户登录信息
老版本平台
accesscontroler.getUserAttribute能够获取到的所有默认属性清单:
userName:用户真实名称
		userID:用户id		
		logincount:登录次数
		userAccount:用户帐号
		remark1:备注1
		remark2:备注2
		remark3:备注3
		remark4:备注4
		remark5:备注5
		userAddress:地址
		userEmail:邮箱
		userFax:传真
		userHometel:家庭电话
		userIdcard:身份证
		userMobiletel1:手机1
		userMobiletel2:手机2
		userOicq:oicq
		userPinyin:用户名拼音
		userPostalcode:邮编
		userSex:性别
		userType:用户类型
		userWorknumber:工号
		userWorktel:工作电话
		
		userBirthday:生日
		userRegdate:注册日期
		userSn:用户排序号
		userIsvalid:用户是否有效
                orgjob:用户直属机构岗位信息
                fullorgjob:用户带层级的机构岗位信息
                CHARGEORGID:com.frameworkset.platform.sysmgrcore.entity.Organization用户所属机构对象



同时系统可以扩展自己的用户loginmodule,在buildCallback方法中添加自己的用户属性。

bboss为了方便系统在jsp页面上获取当前用户的会话属性,特意定义了一个accesscontrol标签,使用方法如下:
先在jsp头部导入标签:
<%@ taglib uri="/WEB-INF/sany-taglib.tld" prefix="sany"%>

接着就可以使用标签了:
<sany:accesscontrol userattribute="userName"/>
<sany:accesscontrol userattribute="userAccount"/>
<sany:accesscontrol userattribute="orgjob"/>



检查资源操作权限的方法:
boolean hasaddpermission = accesscontroler.checkPermission("testid",//资源id
																"add",//资源操作
																"testresource"//资源类型
																);
	boolean hasupdatepermission = accesscontroler.checkPermission("testid","write","testresource");
	boolean hasdeletepermission = accesscontroler.checkPermission("testid","delete","testresource");
	boolean hasreadpermission = accesscontroler.checkPermission("testid","read","testresource");
	boolean hasglobaltestreadpermission = accesscontroler.checkPermission("globaltest","read","testresource");
	boolean hasglobaltestdeletepermission = accesscontroler.checkPermission("globaltest","delete","testresource");
分享到:
评论

相关推荐

    K3WISE_BOS插件开发常见技巧.doc

    K3WISE_BOS插件开发常见技巧.、K3WISE_BOS插件开发常见技巧. K3WISE_BOS插件开发常见技巧.、K3WISE_BOS插件开发常见技巧. K3WISE_BOS插件开发常见技巧.、K3WISE_BOS插件开发常见技巧.K3WISE_BOS插件开发常见技巧.、...

    android插件开发配置

    实现了一个简单的android插件开发配置,你如果感兴趣可以试一下。核心代码都贴出来了。

    WPF Ribbon插件开发框架

    wpf UI插件式开发框架。使用.net 4.0 Framework,Telerik第三方控件开发,设计模式使用MVVM(使用的不正规,见笑了),使用到...插件管理插件后面有时间再补完整,整个框架完成后,打算写下开发文章,公开和大家讨论下。

    svn协作开发插件

    svn协作开发插件,用于Flex、MyEclipse、Eclipse等工具配置svn插件

    海康威视 WEB无插件开发包 V3.2

    WEB3.2无插件版本开发包,支持高版本谷歌、火狐浏览器,同时需要设备支持Websocket取流。无插件版本需要使用nginx代理服务器。内附开发文档

    Android开发环境配置

    2)ADT的安装和配置:eclipse插件,提升开发效率 --Eclipse 3.4/3.5;JDK 1.6; --安装ADT的eclipse插件 ADT配置:https://dl-ssl.google.com/android/eclipse --SDK在Eclipse中的路径配置 3)Android:模拟器的...

    MWinNet是基于.Net winform平台的插件式开发框架

    MWinNet是基于.Net winform平台的插件式开发框架,可以根据配置文件自定义界面,通过实现框架的命令接口实现相应的功能,达到功能与界面的完全分离,添加新功能只需要将配置文件和对应的dll放入相应的文件夹内,完全...

    WordPress微信关注登录插件-免认证-一键登录-适用于个人用户

    首先,首先需要去公众号里配置一下,进公众号,开发 – 基本配置,配置IP白名单以及开启服务器配置, 服务器地址、令牌(自行设置,确保两边填写一致)在启用插件后的插件设置里有,消息加解密方式选明文。 确保...

    《IDEA Plugin 开发手册》• 小傅哥.pdf

    - 此开发手册,分为4章12节循序渐进的通过实践案例开发的方式,串联 IDEA Plugin 开发的各项常用技术点,为读者讲解如何开发一个 IDEA 插件...4. 弄得明,学习完这套插件开发技巧,就可以自己完成一些场景设计和开发了

    eclipse配置python开发插件

    该资源包含了一个eclipse下python开发插件的配置工具,喜欢的下载。

    Openfire 的安装和配置、插件开发

    一个图文讲解的openfire 3.9.3的配置安装,并通过eclipse的方式部署openfire源码进行打包,将打包后的文件发布,运行的全过程

    Datax 插件开发 Kafka writer.pdf

    Datax 插件开发 Kafka writer.pdf

    Eclipse 手机开发插件

    eclipse的j2me开发插件 压缩包内有配置教程

    ErphpWeixinScan 关注微信公众号一键登录网站的WordPress插件

    ErphpWeixinScan 关注微信公众号一键登录网站的WordPress插件 由于未认证的公众号接口权限有限没法获取用户昵称、头像信息(如果你的公众号已经认证,可以自动获取昵称、头像),且需要手动输入验证码(如果是认证的...

    Eclipse 核心编程--插件、界面与Web开发

    《Eclipse核心编程:插件、界面与Web开发》全面、翔实地介绍了基于优秀的Java开发平台——Eclipse,进行插件、界面和Web开发方面的内容。书中不仅包括适合Java初学者阅读的编译和运行Java应用程序,在Eclipse中配置...

    IDEA开发NC插件压缩包

    适用于NC65开发和NCC后端开发, 插件的使用教程: http://note.youdao.com/noteshare?id=6e1591b9b4d5bf4f842cff071607bc5d&sub=62E4EF1925254C099584D056FD174993

    eclipse开发工具python插件Pydev

    eclipse配置python开发环境,离线安装所需的Pydev插件

    Eclipse开发Hadoop相关项目本地配置插件

    Eclipse开发Hadoop相关项目本地配置插件,本地Eclipse相关配置插件和本地电脑部署Hadoop的相关插件

    使用 Eclipse 插件开发环境构建模板

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/375039

    IBM sametime插件开发指南

    介绍sametime插件开发的环境配置和插件的开发步骤。

Global site tag (gtag.js) - Google Analytics