尝试使用SASLAND LDAP来验证用户身份RedHat Linux.到目前为止,我已经设置了saslauthd服务并启动并运行.我/etc/saslauthd.conf看起来如下:
ldap_servers: ldaps://test.ldap.server:1234
ldap_use_sasl: yes
ldap_mech: DIGEST-MD5
ldap_auth_method: fastbind
ldap_search_base: Ou=PeopleAuthSrch,DC=abc,DC=com
Run Code Online (Sandbox Code Playgroud)
我/etc/sasl2/smtpd.conf看起来如下:
pwcheck_method: saslauthd
mech_list: plain login
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用以下命令测试身份验证时:
testsaslauthd -u username -p password -f /var/run/saslauthd/mux
我明白了 0: NO "authentication failed"
当我看到日志时,它说:
Retrying authentication
do_auth :auth failure: [user:myuser] [service=imap] [realm=] [mech=ldap] [reason=unknown]
Run Code Online (Sandbox Code Playgroud)
我在这里失踪了什么?提前致谢!!
更新:
使用以下命令安装OpenLdap进行搜索:
ldapsearch -x -h ldaps://my.ldap.server:port -d8
for ldapsearch命令工作我修改/etc/openldap/ldap.conf文件如下:
tls_reqcert allow
TLS_CACERTDIR /home/myuser/cacertss
LDAPTLS_CACERT /home/myuser/cacertss
Run Code Online (Sandbox Code Playgroud)
它返回所有条目,但我仍然无法使用身份验证
testsaslauthd -u username -p password -f/var/run/saslauthd/mux
我需要做什么才能获得此身份验证?
试着ZonedDateTime用MongoDB.我可以保存ZonedDateTime,MongoDB但是当我查看记录时,它有太多不必要的东西:
> "timestamp" : {
> "dateTime" : ISODate("2016-12-13T13:45:53.991Z"),
> "offset" : {
> "_id" : "-05:00",
> "totalSeconds" : -18000
> },
> "zone" : {
> "_class" : "java.time.ZoneRegion",
> "_id" : "America/New_York",
> "rules" : {
> "standardTransitions" : [
> NumberLong(-2717650800)
> ],
> "standardOffsets" : [
> {
> "_id" : "-04:56:02",
> "totalSeconds" : -17762
> },
> {
> "_id" : "-05:00",
> "totalSeconds" : …Run Code Online (Sandbox Code Playgroud) 我已经成功加密了mongoDB中的通信,但是当我尝试启用数据加密时,我遇到了错误.我正在使用版本为3.2.4的mongoDB企业版.我在控制台中收到以下消息:
ERROR: child process failed, exited with error number 14
Run Code Online (Sandbox Code Playgroud)
但是当我查看日志时,我看到如下详细错误:
Unable to retrieve key .system, error: there are existing data files, but no valid keystore could be located.
Fatal Assertion 28561
Run Code Online (Sandbox Code Playgroud)
以下是我的配置文件的片段:
# enable authentication
security:
authorization: enabled
enableEncryption: true
encryptionKeyFile: /home/test/mongodb-keyfile
Run Code Online (Sandbox Code Playgroud)
没有enableEncryption和encryptionKeyFile参数,它工作正常.谁能解释一下我在这里缺少什么?谢谢!
Spring 应用程序使用 JNDI 查找来获取数据源,如下所示:
@Bean(name = "dataSource1", destroyMethod = StringUtils.EMPTY)
public DataSource dataSource() {
final JndiDataSourceLookup lookup = new JndiDataSourceLookup();
lookup.setResourceRef(true);
return lookup.getDataSource(this.environment.getProperty(Constants.DB_JNDI_NAME_ES));
}
Run Code Online (Sandbox Code Playgroud)
并从数据源获取连接如下:
@Autowired
@Qualifier("dataSource1")
private DataSource ds;
Connection conn = null;
conn = this.ds.getConnection();
Run Code Online (Sandbox Code Playgroud)
但是当我将该连接传递给 StructDescriptor 时,它会抛出 classCastException 如下:
StructDescriptor desc1 = StructDescriptor.createDescriptor("MSAF_DBA.AMOUNT_DUE_OBJ",conn);
java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:101)
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:72)
at com.ceiwc.es.policyholder.dao.PolicyHolderDaoImpl.getAmountDue(PolicyHolderDaoImpl.java:290)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
Run Code Online (Sandbox Code Playgroud)
我的理解是getConnection()回报T4CConnection,其中的OracleConnection是必需的。尝试了几种方法来获得oracleConnection但似乎无法获得它。任何帮助,将不胜感激。
我是MongoDB和LDAP的新手.我正在尝试使用LDAP来验证用户mongo.这些是我到目前为止所做的步骤.
Run Code Online (Sandbox Code Playgroud)ldap_servers: ldap://com.myldap.server ldap_use_sasl: yes ldap_mech: DIGEST-MD5 ldap_auth_method: fastbind
mux里面创建了一个/var/run/saslauthd现在看起来像的目录/var/run/saslauthd/mux使用权限将权限设置为755 sudo chmod 755 /var/run/saslauthd
修改/etc/sysconfig/saslauthd了以下内容
MECH=ldap
DAEMONOPTS=--user saslauth
现在,当我尝试使用以下命令测试身份验证机制时:
testsaslauthd -u username -p password -f /var/run/saslauthd/mux
我收到以下消息:
connect(): Permission Denied
我的工作是基于这个,这 可以有人指出我在这里缺少什么?提前致谢.
更新:
我试过sudo下面的测试命令:
sudo testsaslauthd -u username -p password -f /var/run/saslauthd/mux
我得到以下内容:
connect() : Connection refused
我有一个MongoDb正在运行的实例(单个实例)已SSL启用。我可以使用以下选项卡上的RoboMongo位置进行连接SSL:
CA File : /path to my certificate/testCA.pem
PEM certificate/key: /path to my key/testKey.pem
Run Code Online (Sandbox Code Playgroud)
哪个成功连接。现在,我尝试从Java应用程序连接到同一mondodb。我使用以下命令将testCA.pem导入了cacerts中:
keytool -import -keystore cacerts -file testCA.pem -storepass changeit
Run Code Online (Sandbox Code Playgroud)
我可以看到一个新条目已添加到商店中。试图在其中添加另一个密钥,并显示证书无效。在Java应用程序上,我将系统属性设置如下:
System.setProperty ("javax.net.ssl.trustStore","C:\\Program Files\\Java\\jre1.8.0_91\\lib\\security\\cacerts");
System.setProperty ("javax.net.ssl.trustStorePassword","changeit");
Run Code Online (Sandbox Code Playgroud)
并且出现以下错误:
org.springframework.dao.DataAccessResourceFailureException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=test.mongo.com:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.io.EOFException}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client …Run Code Online (Sandbox Code Playgroud)