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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【开发经验】java socket编程详解

    【开发经验】java socket编程详解前言​ 在大多数的java项目中,使用开发者直接使用socket的场景并不多。但是目前众多框架的底层中,都会有socket的身影。此示例一下java原始的socket编程,并通过telnet进行通讯。1、功能实现如上图所示,主要实现服务器开启服务,每个客户端链接时都分配一个新的线程与其通讯。2、服务端代码:importjava.io.InputStream;importjava.net.ServerSocket;importjava.net.Socket;importjava.u

    2022年7月7日
    25
  • java 入门面试题

    java 入门面试题起因焦虑。每次自己想跳槽的时候,内心总是担忧着那些面试题怎么解答。 很多问题在实际工作中并不会遇到,没有实际的解决问题经验,看过也记不住。 假如我明年需要换工作,那现在把下次的面试准备工作,拆分、融入到平时的每天中,会不会取得更满意的offer?目标收集网上各种经典的java面试题 做出答案,分享出去,和猿友讨论,不断进步 扩大知识图谱,扎实基础,梳理知识脉络…

    2022年5月27日
    34
  • 什么是工作流技术?

    什么是工作流技术?工作流(Workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参

    2022年7月3日
    25
  • 信号带宽与信道带宽「建议收藏」

    信号带宽与信道带宽「建议收藏」
    信号带宽是信号频谱的宽度,也就是信号的最高频率分量与最低频率分量之差,譬如,一个由数个正弦波叠加成的方波信号,其最低频率分量是其基频,假定为f=2kHz,其最高频率分量是其7次谐波频率,即7f=7×2=14kHz,因此该信号带宽为7f-f=14-2=12kHz。
       信道带宽则限定了允许通过该信道的信号下限频率和上限频率,也就是限定了一个频率通带。比如一个信道允许的通带为1.5kHz至15kHz,其带宽为13.5kHz,上面这个方波信号的所有频率成分当然能从该信道通过,如果

    2022年10月11日
    2
  • matplotlib颜色代码_matplotlib color

    matplotlib颜色代码_matplotlib color命令形如:plt.plot(x,y,linewidth=’1′,label=”test”,color=’red’,linestyle=’:’,marker=’|’)plt.legend(loc=’upperleft’)plt.show()线条形式(linestyle):’-‘solidlinestyle’–‘dashedli…

    2022年10月15日
    4
  • java setvisible_java value

    java setvisible_java value如果查询返回多个值用list()方法publicvoidtestQuery(){Configurationconfig=newConfiguration().configure();SessionFactoryfactory=config.buildSessionFactory();//创建SessionFactorySessionsession=factory.open…

    2022年9月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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