判断一个用户对一个页面有没有权限(根据moduleName)

public String view() throws Exception {
		String moduleName = getModuleName();
		if (FrameworkUtil.convertToNull(moduleName) != null) {// 不允许直接访问action,必须加上moduleName参数,
			FunctionDetails functionDetails = getSecurityCacheManager()
					.getFunctionFromCache(moduleName);
			if (functionDetails != null) {// moduleName对应的菜单必须存在
				log.debug("getRequestURI() is : "
						+ getRequest().getRequestURI());
				log.debug("getRequestURL() is : "
						+ getRequest().getRequestURL());
				log.debug("getServletPath() is : "
						+ getRequest().getServletPath());
				log.debug("getQueryString() is : "
						+ getRequest().getQueryString());
				// moduleName必须与菜单路径对应,保持一致,防止(用户只要拿一个可以通过的菜单,就可以访问所有的页面)
				if (functionDetails.getUrl().indexOf(
						getRequest().getRequestURI()) >= 0) {
					List bizModuleNames = SecurityContextService
							.getBizModuleViewAuthorities();
					if ("admin".equals(getLoginUser().getLoginname())
							|| HelpUtil.containsString(bizModuleNames,
									functionDetails.getId())) {// 当前用户必须要有对该菜单访问的权限
						return SUCCESS;
					}
				}
			}
		}
		log.debug("has permission : false");

		getRequest().setAttribute("_exception_title_", "错误窗口");
		String errorMsg = "当前用户没有页面浏览权限!";
		getRequest().setAttribute("_exception_message_", errorMsg);

		try {
			getRequest().getRequestDispatcher("/common/exception.jsp").forward(
					getRequest(), getResponse());

		} catch (IOException ioe) {
			log.error("/common/exception.jsp页面出错");
		}
		return null;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值