首页 > 编程知识 正文

ADR数权云,机顶盒鉴权失败什么意思

时间:2023-05-05 23:46:23 阅读:19606 作者:4291

opengrok的认证插件开发指南opengrok是一个广泛使用的源代码浏览系统。 开源代码不需要考虑认证问题,但需要权限控制的代码需要认证操作。

opengrok为我们提供了用于进行认证等操作的插件机制。

最简单的身份验证示例opengrok提供了身份验证插件作为身份验证的入口。 IAuthorizationPlugin包含加载、卸载和两个isAllowed方法,结构非常简单。

首先,了解认证的界面。 最简单的鉴识操作是不管三七二十一一律通过。

接口如下:

publicclasstruepluginimplementsiauthorizationplugin { @ overridepublicvoidload (mapstring, Object map ) { } @ overridepublicvoidunload (} { } @ overridepublicbooleanisallowed (javax.servlet.http.http服务器请求@ overridepublicbooleanisallowed (javax.servlet.http.httpservletrequesthttpservletrequest,group ) { return true }

load函数的映射是对设置项的引用。

isAllowed的项目和组是存储opengrok工程和工程组的数据结构。

编写插件落地之旅插件后,可以通过引用opengrok.jar和servlet API jar包成功编译。 尽管如此,我们一点意义逻辑也没有写,所以编辑起来很不容易:)

堆栈opengrok支持多个插件,因此这些插件形成插件堆栈。 所以,这些插件需要逻辑来管理,否则就会发生冲突。

插件具有三个属性,可以相互协调:

REQUIRED:失败会导致最终验证失败,但会导致所有插件运行REQUISITE: 失败将终止认证过程,但失败的原因是第一个失败的插件SUFFICIENT。 如果当前插件成功,但以前没有失败,则直接返回成功,并在xml中写入此属性。 举个例子吧。

void property=' plugin stack ' void method=' add ' object class=' org.open grok.indexer.authorization.authorizationpls voidvoidproperty=' name ' string com.e banma.open grok.plugin.true plugin/string/void/object/void /

我们解释说,这相当于在插件堆栈中调用授权插件(add )方法。

flag和name的定义在授权实体类中定义,授权插件从授权实体继承:

受保护的authcontrolflag标志; 保护性字符串名称; 落地在TruePlugin.class的每个路径中,放在data目录的对等plugins目录下。

这样有点抽象,让我们来看一个例子:

例如,假设我的data目录是/workspace/xulun/open grok/open grok-1.3.6/data _ dev _ bsp _ 8155 /,则插入延迟

请查看日志打印:

org.open grok.indexer.framework.plugin framework.reloadpluginsarebeingreloadedfrom/workspace/xulun/open grok/opop

gins

为了看得更清楚,我们打印几行日志,代码最终如下:

package com.ebanma.opengrok.plugin;import org.opengrok.indexer.authorization.*;import org.opengrok.indexer.configuration.Group;import org.opengrok.indexer.configuration.Project;import java.util.Map;public class TruePlugin implements IAuthorizationPlugin{ @Override public void load(Map<String, Object> map) { System.out.println("[xulun] BanmaGrok Plugin loaded"); } @Override public void unload() { System.out.println("[xulun] BanmaGrok Plugin unloaded"); } @Override public boolean isAllowed(javax.servlet.http.HttpServletRequest httpServletRequest, Project project) { System.out.println("[xulun] BanmaGrok Plugin verified 1"); return true; } @Override public boolean isAllowed(javax.servlet.http.HttpServletRequest httpServletRequest, Group group) { System.out.println("[xulun] BanmaGrok Plugin verified 2"); return true; }}

修改好configuration.xml后,我们重新deploy,例:

opengrok-deploy -c /workspace/xulun/opengrok/opengrok-1.3.6/etc/bsp_8155/configuration.xml -l DEBUG /workspace/xulun/opengrok/opengrok-1.3.6/lib/source.war /root/apache-tomcat-9.0.30/webapps/bsp_8155.war

我们查看tomcat的日志catalina.out,看到如下:

25-Mar-2020 14:21:25.492 INFO [Catalina-utility-2] org.opengrok.indexer.framework.PluginFramework.reload Plugins are being reloaded from /workspace/xulun/opengrok/opengrok-1.3.6/data_dev_bsp_8155/../plugins25-Mar-2020 14:21:25.494 INFO [Catalina-utility-2] org.opengrok.indexer.authorization.AuthorizationStack.load [REQUIRED] Stack "default stack" is loading.[xulun] BanmaGrok Plugin loaded25-Mar-2020 14:21:25.495 INFO [Catalina-utility-2] org.opengrok.indexer.authorization.AuthorizationPlugin.load [REQUISITE] Plugin "com.ebanma.opengrok.plugin.TruePlugin" found and is working.25-Mar-2020 14:21:25.495 INFO [Catalina-utility-2] org.opengrok.indexer.authorization.AuthorizationStack.load [REQUIRED] Stack "default stack" is ready.

我们看到com.ebanma.opengrok.plugin.TruePlugin已经在正常工作了。
访问之后,我们就能看到我们的输出了:

[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1[xulun] BanmaGrok Plugin allowed 1

好像看不出来啥,我们再把Project的信息打印出来:

代码改成这样:

package com.ebanma.opengrok.plugin;import org.opengrok.indexer.authorization.*;import org.opengrok.indexer.configuration.Group;import org.opengrok.indexer.configuration.Project;import java.util.Map;public class TruePlugin implements IAuthorizationPlugin{ @Override public void load(Map<String, Object> map) { System.out.println("[xulun] BanmaGrok Plugin loaded"); } @Override public void unload() { System.out.println("[xulun] BanmaGrok Plugin unloaded"); } @Override public boolean isAllowed(javax.servlet.http.HttpServletRequest httpServletRequest, Project project) { System.out.println("[xulun] BanmaGrok Plugin verified 1:" + project.getName()); return true; } @Override public boolean isAllowed(javax.servlet.http.HttpServletRequest httpServletRequest, Group group) { System.out.println("[xulun] BanmaGrok Plugin verified 2:"+group.getName()); return true; }}

输出如下:

[xulun] BanmaGrok Plugin verified 1:adsp_proc[xulun] BanmaGrok Plugin verified 1:aop_proc[xulun] BanmaGrok Plugin verified 1:boot_images[xulun] BanmaGrok Plugin verified 1:btfm_proc[xulun] BanmaGrok Plugin verified 1:btfm_proc_gen[xulun] BanmaGrok Plugin verified 1:btfm_proc_hst[xulun] BanmaGrok Plugin verified 1:btfm_proc_rome[xulun] BanmaGrok Plugin verified 1:cdsp_proc[xulun] BanmaGrok Plugin verified 1:cnss_proc[xulun] BanmaGrok Plugin verified 1:common[xulun] BanmaGrok Plugin verified 1:npu_proc[xulun] BanmaGrok Plugin verified 1:trustzone_images[xulun] BanmaGrok Plugin verified 1:venus_proc[xulun] BanmaGrok Plugin verified 1:wdsp_proc[xulun] BanmaGrok Plugin verified 1:wlan_proc_gen[xulun] BanmaGrok Plugin verified 1:wlan_proc_hst[xulun] BanmaGrok Plugin verified 1:apps_proc

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。