Koo*_*inn 5 java spring web-applications spring-security
我正在尝试在我们的 Web 应用程序中实施预身份验证的安全性,但我不确定如何正确执行。没有那么多例子。而那些似乎比我们的设置要简单得多的设置。
我们在请求标头中以 XML 形式获取身份验证详细信息,其中包含名字、姓氏、用户 ID 和错误标记(如果发生)。
我正在扩展AbstractPreAuthenticatedProcessingFilter并在其getPreAuthenticatedPrincipal()提取标头,对其进行解组,并进行一些验证。
现在的问题:
getPreAuthenticatedPrincipal()?PreAuthenticatedCredentialsNotFoundException吗?getPreAuthenticatedCredentials()什么地方回来?是否"N/A"足够?我想在某些时候我还没有创建一个Authentication和一个Principal.
这是一个好方法吗?
Principal dynamicUser = new DynamicUser(rijksregisterNummer);
List<SimpleGrantedAuthority> grantedAuthorities = Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"));
Authentication authentication = new AnonymousAuthenticationToken(rijksregisterNummer, dynamicUser, grantedAuthorities);
Run Code Online (Sandbox Code Playgroud)在什么时候(在哪个班级)我在 Spring Security 中设置它?
我还需要扩展哪些其他类?
如何配置 Spring Security 配置 XML?像这样?我错过了什么?
<http>
<custom-filter position="PRE_AUTH_FILTER" ref="myPreAuthFilter" />
</http>
<bean id="myPreAuthFilter" class="my.package.MyPreAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
<authentication-manager alias="authenticationManager">
<authentication-provider ref="customAuthenticationProvider"/>
</authentication-manager>
Run Code Online (Sandbox Code Playgroud)外部用户通过预认证(使用电子身份证和读卡器),然后点击我们的 Web 应用程序。但是,内部用户必须使用用户名和密码进行身份验证,这是正常的身份验证程序。
很多问题,我知道。我希望你能指导我通过。
小智 4
这是一个老问题但仍然相关。正如所说,有很多问题。引起我注意的是,没有太多示例实现。
我一直在玩一个实现。您可以在这里找到它: https: //github.com/klaalo/reqTokenAuth。
它很容易与身份验证方法混合和匹配,WebSecurityConfigurerAdapter以便您可以为旧用户进行基于传统表单的身份验证。
该实现基于 Apache mod_auth_openidc位于应用程序前面的设置。然而,与Shibboleth SP一起实施也应该可以正常工作。
我不太明白您对在 HTTP 请求标头中以 XML 形式发送身份验证详细信息的看法。Shibboleth SP 是关于 SAML 身份验证的。您应该保留有关 SAML SP 身份验证的详细信息,并且仅在应用程序中享受易于身份验证的用户带来的好处。无需解组 XML,Shibboleth 会为您完成此操作。您可以将用户详细信息作为表示 HTTP 标头或HttpServletRequest属性中的 SAML 属性值的干净字符串(当使用 Tomcat/AJP 时)。
| 归档时间: |
|
| 查看次数: |
15855 次 |
| 最近记录: |