OpenDJ3.0使用配置之Scheme(二)

使用control-panel.bat打开控制面板,可以看到这个Manage Scheme的选项

25102033_mEHG.jpg

之所以先看这个是因为在Manage Entries那里会遇到很多报错都是和这个相关。


### 错误集

25102033_qc3U.jpg

错误一:写了一个userAuthInfo的objectclass,系统报错,未知的objectclass

25102033_otBL.jpg

错误二:换了一个objectclass,但是系统报错说缺少sn这个属性

25102034_uKvB.jpg

错误三:把person这个objectclass里面报缺少的属性cn、sn都加上,又报错多了一个c属性,在该实体内任一个objectclass中都没有定义

25102034_VAWS.jpg

错误四:终于Check Syntax通过了,执行报错,这次是dn里面写的那个c属性出问题了(这里觉得应该是Check Syntax的一个漏洞,没有检查dn内部)


25102034_KbHW.jpg

错误五:这个是最常见的错误,没有parent entry,理解LDAP是类似目录结构就知道了,就像是缺少创建父目录一样,令人感到不适应的是OpenDJ不会自动创建parent entry。

我把所有错误都遇到后,在Schema这里找到了原因,以下是Manage Schema的界面

Object Classes和Attribute下方都有3个分类:标准(Standard)、自定义(Custom)以及服务端配置(Server Configuration),这就像是jdk标准包、一些扩展包(utils什么的)以及tomcat之类的服务器配置包。

25102034_nE1n.jpg

【1】Object Classes

通过搜索找到刚刚错误用例里面一直用到的objectclass: person,在它的介绍中,Superior是top,这个top很类似于java中的Object类,所有的objectclass都继承于它。

再往下Required Attributes,这就是之前错误二里面遇到的cn、sn必须要写,也就是说如果你的entry定义里面包含了objectclass: person,那么这cn、sn就要也写出来。

文本框底下有一个注释(*) Inherited Attribute表示objectClass(*)这个属性是继承来的,继承自哪里?当然是top了。

Required Attributes下面就是Optional Attributes,除了这些属性,其他的属性定义到entry里面都会导致Check Syntax报错(如错误三)

25102034_jL7j.jpg

【2】Attributes

这里没太多要注意的,都是刚刚Object Classes中出现的Attribute,不影响大概念。

提醒一下,如果OpenDJ内部提供的不足以满足项目需要,objectclass和attribute都是可以自己自定义新的

总结起来,OpenDJ提供的Schema其实和关系型数据库的表设计很类似,其中objectclass对应表,attribute对应着表字段。

不过有些objectclass已经做好了定义,可以方便开发者直接使用。

至此OpenDJ3.0中的Schema的概念基本结束。

转载于:https://my.oschina.net/qingzhukl/blog/647069

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 可以通过配置 URL Scheme 实现从外部应用程序打开应用程序并传递参数。下面是 iOS 和 Android 上配置 URL Scheme 的步骤: ## iOS 1. 在 Xcode 中选择项目,进入 TARGETS -> Info -> URL Types,点击“+”按钮添加 URL Scheme。 2. 在 URL Scheme 输入框中填写自定义的 URL Scheme,例如:myapp。 3. 在 URL Schemes 中填写应用程序的 Bundle ID。 4. 在 Xcode 中保存并编译项目。 5. 在应用程序中,可以通过 Linking 模块的 getInitialURL 方法获取启动应用程序的 URL,并通过 parse 函数解析 URL 中的参数。 示例代码: ```javascript import { Linking } from 'react-native'; Linking.getInitialURL().then(url => { if (url) { const { queryParams } = Linking.parse(url); console.log(queryParams); } }); ``` ## Android 1. 在 AndroidManifest.xml 中添加 intent-filter。 ```xml <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="myapp" /> </intent-filter> ``` 2. 在 data 标签中填写自定义的 URL Scheme。 3. 在应用程序中,可以通过 Linking 模块的 getInitialURL 方法获取启动应用程序的 URL,并通过 parse 函数解析 URL 中的参数。 示例代码: ```javascript import { Linking } from 'react-native'; Linking.getInitialURL().then(url => { if (url) { const { queryParams } = Linking.parse(url); console.log(queryParams); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值