java 登陆拦截_登录拦截 – java代码库 – 云代码

java 登陆拦截_登录拦截 – java代码库 – 云代码[java]代码库packagecom.app.common;importorg.apache.log4j.Logger;importcom.app.model.User;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionInvocation;importcom.opensym…

大家好,又见面了,我是你们的朋友全栈君。

[java]代码库package com.app.common;

import org.apache.log4j.Logger;

import com.app.model.User;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class PrivilegeInterceptor extends AbstractInterceptor{

/**

*

*/

private static final long serialVersionUID = 5851995979071627976L;

private static final Logger logger = Logger.getLogger(PrivilegeInterceptor.class);

@Override

public String intercept(ActionInvocation invocation) throws Exception {

logger.info(“PrivilegeInterceptor:Action方法拦截”);

//获取当前用户

User user = (User) ActionContext.getContext().getSession().get(“loginUser”);

//获取当前访问的URL,并去掉当前应用程序的前缀(也就是 namespaceName + actionName )

String namespace = invocation.getProxy().getNamespace();

String actionName = invocation.getProxy().getActionName();

logger.info(“namespace:” + namespace +” , “+”actionName:” + actionName);

String privilegeUrl = null;

if(namespace.endsWith(“/”)){

privilegeUrl = namespace + actionName;

}else{

privilegeUrl = namespace + “/” + actionName;

}

//要去掉开头的’/’

if(privilegeUrl.startsWith(“/”)){

privilegeUrl = privilegeUrl.substring(1);//从1开始截取

}

//String result = null;

//如果未登录用户

if(user==null){

//if(privilegeUrl.endsWith(“/login_index” + Constant.S2_ACTION_EXT)

//|| privilegeUrl.endsWith(“/login_login” + Constant.S2_ACTION_EXT )){

如果是正在使用登录功能,就放行

//result = invocation.invoke();

//}else{

//如果不是去登录,就转到登录页面

return “login”;

//}

}

//如果已经登录,就判断权限

else{

//if(user.hasPrivilegeByUrl(privilegeUrl)){

//如果有权限就放行

return invocation.invoke();

//}else{

//如果没有权限,返回无权限信息

//return “noPrivilegeError”;

//}

}

//return result;

}

}

694748ed64b9390909c0d88230893790.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146677.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • std::ostringstream的用法

    std::ostringstream的用法原文:ostringstream的用法使用stringstream对象简化类型转换为什么要学习进入stringstream你的编译器支持吗?string到int的转换重复利用stringstream对象在类型转换中使用模板结论一些实例例子一:基本数据类型转换例子int转string例子二:除了基本类型的转换,也支持char*的转换。例子三:再进行多次转换的时候,必须调用stringstre…

  • mysql窗口函数用法_mysql实现窗口函数

    mysql窗口函数用法_mysql实现窗口函数一,MySQl8.0窗口函数窗口函数适用场景:对分组统计结果中的每一条记录进行计算的场景下,使用窗口函数更好;可以跟Hive的对比着看:点我,特么的花了一晚上整理,没想到跟Hive的基本一致,还不因为好久没复习博客了,淦注意:mysql因为没有array数据结构,无法像Hive一样行列进行转换;1.1窗口函数分类MySQL从8.0版本开始支持窗口函数。窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是

  • pHP生成唯一单号

    pHP生成唯一单号

  • UE4投影矩阵[通俗易懂]

    UE4投影矩阵[通俗易懂]UE4投影矩阵正交投影classFOrthoMatrix :publicFMatrix{public: /** *Constructor * *@paramWidthviewspacewidth *@paramHeightviewspaceheight *@paramZScalescaleintheZaxis *@paramZOffsetoffsetintheZaxis */ FOrthoMatrix(flo

  • android之通过Button的监听器往adapter中添加数据时出错

    本来源代码如下: List model; //自定义的一个List数据,存储的是自定义的类 LunchListAdapter adapter;//自定义的一个ListView的适配器 ……//省略class onSavaLis implements OnClickListener{ //Button s

  • gitee怎么提交作业_git的更新与提交

    gitee怎么提交作业_git的更新与提交如何使用git提交作业收作业方法论:今天就来用一个通俗易懂的自然模型来解释Git的commit,pull和push。不过,我们首先要理解两个名词,remote,local。remote,翻译

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号