权限控制配置
在跨系统调用的产品应用方式下,还涉及到权限控制的需求,例如控制当前用户是否有权访问某一功能,或者有权查看某张报表。
在跨系统调用方式下,实现权限控制的方式有很多种。例如可以使用本产品本身提供的权限控制功能模块,或者由客户应用系统的权限模块进行权限控制,此外,还可以通过在用户的请求发出前进行权限的二次判断来进行控制。
下面介绍在跨系统调用时所提供的权限控制接口,此部分的实现和配置在客户系统(安全模块)中进行。
安全模块提供了权限控制的接口,可以在跨系统调用请求发出给安全模块后,由安全模块在转发请求前进行权限控制,如无权限,可实现对请求的拦截。权限控制配置可用于判断当前请求的用户是否有权限进行调用,以及控制可调用的资源等。
使用方法
具体配置和实现方式如下:
1、实现com.customer.interfaces.IPrivInterface接口
2、拷贝接口实现类至部署了安全模块的客户应用系统类路径下
3、在安全模块配置文件config.properties配置privilegeInterface来指定实现类路径
IPrivInterface接口说明
接口名:com.customer.interfaces.IPrivInterface
重要方法:
public boolean getPrivValue(HttpServletRequest request)
方法参数:request request对象
功能说明:返回是否有权限访问
返回值:布尔值
示例:
public class CusPrivilege implements IPrivInterface {
public boolean getPrivValue(HttpServletRequest request) {
if(request.getSession().getAttribute("username")!=null) {
String username=request.getSession().getAttribute("username").toString();
return !"1".equals(username);
}else return true;
}
}