十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
真正的方法是:
创新互联建站2013年至今,是专业互联网技术服务公司,拥有项目成都网站设计、做网站、成都外贸网站建设公司网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元松北做网站,已为上家服务,为松北各地企业和个人服务,联系电话:028-86922220
先用C/C++编写一个简单的CMD命令调用程序,调用的命令就是“java -jar YourJar.jar”,如果想运行效果更好,可以把启动时的CMD窗口隐藏,然后以管理员权限运行这个编译链接好的exe文件即可。核心思想就是:OS无法直接给运行Jar包Java虚拟机管理员权限,也无法通过直接右键Jar包以管理员权限运行因为Jar包不是PE文件,需要通过创建子进程间接地把管理员权限传递给Java虚拟机,从而运行的Jar包也就有了管理员权限。运行的Jar包有没有管理员权限看的是所运行的Java虚拟机有没有权限。示例代码:
//隐藏父窗口即CMD窗口看参考链接看原理
//只为了更好的运行效果
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#include windows.h
int main() {
WinExec("java -jar MyExecutableJar.jar", SW_HIDE);
return 0;
}
参考链接:运行隐藏CMD窗口.
然后把编译链接好的EXE文件放到“MyExecutableJar.jar”文件所在目录(“MyExecutableJar.jar”就是你的可执行Jar包,要获得管理员权限的),然后要以管理员权限运行Jar包时就右击编译链接好的EXE文件,选择使用管理员权限运行,之后运行的Jar包就继承了父进程的管理员权限。
测试结果:
以上是我写的需要使用管理员权限才能成功运行的Jar包,try11.exe是编译好链接好的exe文件,用来接受管理员权限并传递给java命令。我的Jar程序需要使用管理员权限开启WIFI和ICS,在运行前是这样子的:
以管理员身份运行try11.exe:
运行结果成功开启了WIFI和ICS:
Jar程序也运行起来了(只为了说明不是我手动开的WIFI和ICS,是真的以管理员权限运行的Jar包):
spring security可以实现。。不过spring要升级到3.0
tomcat6。7都能用,我有婉转班。。置于前台菜单用js隐藏也可以,用security判断角色都行,
如果按资源判断就要做acl。。这个很简单。。不过一般初学者要学会spring security至少要1,2个星期吧,如果楼主需要我可以把文档发给你,如果你直接要代码我也可以给你,但你看不懂。。建议还是看文档先把,你留个邮箱给我我发给你。。
struts拦截器不推荐使用 建议使用spring AOP 面向切面 统一权限操作当做一类失误处理 对于数据库权限 简单权限可以设定一张权限表 复杂权限 但权限没有从属关系可以使用2进制表示 0101010 0和1分别代表是否具有该权限操作 多级权限表结构又相应复杂
给你一个简单的管理代码
public class CheckIdAdvice implements MethodInterceptor {
protected final Log log = LogFactory.getLog(getClass());
public Object invoke(MethodInvocation invocation) throws Throwable {
String methodName = invocation.getMethod().getName();
for(int i=0;iConstant.levelOneMethod.length;i++)
{
if(Constant.levelOneMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=1)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
for(int i=0;iConstant.levelTwoMethod.length;i++)
{
if(Constant.levelTwoMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin.getQuanxian()!=nulladmin.getQuanxian()=3)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
for(int i=0;iConstant.levelThreeMethod.length;i++)
{
if(Constant.levelThreeMethod[i].equals(methodName))
{
Map map=(Map) ActionContext.getContext().get("session");
Admin admin=(Admin)map.get("admin");
if(admin!=nulladmin.getQuanxian()=5)
{
return invocation.proceed();
}
else
{
log.info("进入失败");
return false;
}
}
}
return invocation.proceed();
}
}