首页 文章

Ldap用户授权失败 - 未处理的Spring身份验证“访问被拒绝”

提问于
浏览
1

Question: Ldap用户授权失败 - 未处理的Spring身份验证"Access is denied"

我们有REST服务,我们将使用ldap进行身份验证 .
没有ldap安全性的REST服务可以正常工作 .
REST服务在PAS实例上运行(Progress Technology)

当我按下登录按钮然后我收到错误消息时,我们使用表单并填写我们的凭据 . 当我读取日志文件时,我可以看到:登录到LDAP服务器很好但是当它尝试验证用户时我是个例外 .

我们使用tomcat版本8.5.23

EDIT 16/01/2018 09:24

我用最新信息更新了整个问题 .
如果我将此grouprole属性设置为cn:

ldap.grouprole.attribute = cn

我在日志记录中看到我们得到了更多,但现在我们得到了另一个错误 .

Error Message:

访问被拒绝 - 403状态代码

以前的错误消息没有设置ldap grouprole属性(对于更多读者):

java.lang.IllegalArgumentException:名称不能为空=>初始错误消息

Logging Messages:

oepas1.DATE.log显示以下内容:09:04:40.550 / 20215 [catalina-exec-5] DEBUG oslcsAbstractContextSource - 在服务器'我的内部ip'上获得Ldap上下文09:04:40.553 / 20218 [catalina-exec -5] DEBUG ossluDefaultLdapAuthoritiesPopulator - 来自搜索的角色:[Makelaars] 09:04:40.560 / 20225 [catalina-exec-5] WARN cpassOEAuthenticationLogger - 未处理的Spring身份验证事件:org.springframework.security.web.authentication.session.SessionFixationProtectionEvent [source=org.springframework.security.authentication.UsernamePasswordAuthenticationToken@5d0c4105:校长:org.springframework.security.ldap.userdetails.InetOrgPerson@aa53233b:Dn:cn =测试C&C,ou =用户,ou =域名BPB,dc = bpb ,DC =是;用户名:tc;密码保护];启用:true; AccountNonExpired:true; CredentialsNonExpired:true; AccountNonLocked:true;授权机构:ROLE_MAKELAARS;证书:[保护];认证:真实;详细信息:org.springframework.security.web.authentication.WebAuthenticationDetails@fffc7f0c:RemoteIpAddress:0:0:0:0:0:0:0:1; SessionId:991C2EE38AA27E364FFB812CD6BFC9ABDD85795BF2F8.oepas1;授权机构:ROLE_MAKELAARS]

My Configuration: (oeablSecurity.properties in the WEB-INF folder)

http.all.authmanager = ldap client.login.model = form ldap.url =“internal ldap url”ldap.manager-dn = cn = Ad Reader,ou = Special Users,ou = Domain BPB,dc = bpb,dc = be ldap.manager-password = topsecret ldap.root.dn = ldap.grouprole.attribute = tc ldap.groupsearch.filter =(member = {0})ldap.groupsearch.base = cn = Makelaars,ou = Groups,ou =域BPB,dc = bpb,dc =是ldap.usersearch.base = ou =用户,ou =域BPB,dc = bpb,dc = be ldap.usersearch.filter =(sAMAccountName = {0})

Expected solution:

我希望在按下登录按钮后用户被正确认证,我看到REST服务的响应JSON . (经过ldap认证)

1 回答

  • 0

    你可以查看oeablSecurity.csv文件 . 你需要把正确的角色放在那里 . 例如“web / test / "," "," hasAnyRole('rol1','rol2')”

相关问题