使用j_security_check进行认证,而不是授权(在WebSphere)(Using j_s

2019-10-16 18:02发布

有没有办法迫使我的Java EE应用程序使用j_security_check进行身份验证,而不是授权? 我想通过一个独立的LDAP存储库做认证,但我想这样做编程授权我的应用程序。

具体来说,我不想做的WebSphere Application Server管理控制台内各地授权任何配置(用户角色映射到组)。

例如:

  1. 用户登录与用户“user1”和密码“密码1”,这是正确的
  2. 的Websphere发现在LDAP这个人,知道他们是谁,他们说他们是(认证)
  3. 我从文件系统上的文件检查该用户是否有权限(授权)

Answer 1:

我建议使用Spring Security进行此操作。 我们已经实施了WebSphere这个确切的模式。 诀窍是使用预认证机制,Spring Security提供,然后定义仅在配置授权规则。

<http>
  <session-management session-fixation-protection="none"/>
  <custom-filter position="PRE_AUTH_FILTER" ref="preAuthenticationFilter"/>
  <intercept-url pattern="/j_security_check" filters="none"/>
  <intercept-url pattern="/ibm_security_logout" filters="none"/>
  <!-- put authorization intercept-url elements here... -->
</http>

你必须定义一些其他豆类为好,如预认证过滤器和一个自定义的切入点,但在这里记载: http://static.springsource.org/spring-security/site/docs/3.0.x/参考/ preauth.html



Answer 2:

看看Spring Security的。 身份验证和授权的概念被分割。

认证由一个处理AuthenticationProvider (一个LdapAuthenticationProvider实现是弹簧的一部分)。 认证供应商代表来抓取用户,其中包括列表的细节GrantedAuthority对象可以代表一个用户的权限。

LdapAuthenticationProvider默认试图从目录授予的权限,所以你需要提供你自己的LdapAuthoritiesPopulator从文件系统加载执行。



Answer 3:

Java EE的安全性也可被拆分。 这取决于你的容器的实现然而。 既然你提到的WebSphere 这个文件可能会感兴趣。



文章来源: Using j_security_check for authentication, but not authorization (in Websphere)