我正在我的web应用程序中实现Spring SAML,该应用程序已经实现了Spring Security,因此我现在有两个身份验证管理器。由于spring总是引用最后声明的authenticationManager,我找到了将一个authentitionManager定义为bean的解决方案。
以下是我在转换为bean之前的AuthenticationManager:
<authentication-manager alias="samlAuthenticationManager">
<!-- Register authentication manager for SAML provider -->
<authentication-provider ref="samlAuthenticationProvider"/>
<!-- Register authentication manager for administration UI -->
<authentication-provider>
<user-service id="adminInterfaceService">
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
</user-service>
</authentication-provider>
</authentication-manager>
以下是我转换为bean后的代码:
<beans:bean id="samlAuthenticationManager" class="org.springframework.security.authentication.ProviderManager">
<beans:constructor-arg>
<beans:list>
<beans:bean class="org.springframework.security.saml.SAMLAuthenticationProvider">
<beans:property name="userDetails" value="adminInterfaceService"/>
</beans:bean>
</beans:list>
</beans:constructor-arg>
</beans:bean>
<user-service id="adminInterfaceService">
<user name="admin" password="admin" authorities="ROLE_ADMIN"/>
</user-service>
身份验证提供程序定义如下:
<beans:bean id="samlAuthenticationProvider" class="org.springframework.security.saml.SAMLAuthenticationProvider">
<!-- OPTIONAL property: can be used to store/load user data after login -->
<!--
<beans:property name="userDetails" ref="bean" />
-->
</beans:bean>
我得到以下异常:
无法将“java.lang.String”类型的值转换为所需的“org.springframework.security.saml.userdetails”类型。属性“userDetails”的“SAMLUserDetailsService”
同样的请帮忙。我将不胜感激。
提前谢谢
在这里找到解决方案 https://github.com/spring-projects/spring-security/issues/2163
只是必须在身份验证管理器中使用id而不是别名
你应该不需要用春豆。如果不指定ID,将会覆盖“默认”实例。这就是标准春豆的工作方式。在引用的线程中,用户指定的是别名,而不是ID,因此不会创建单独的实例。这也是普通bean实例的工作方式,所以我不确定我们是否应该偏离这一点。
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我正在使用大量SQL表在Web应用程序中工作。我需要为每个表创建一个Java bean类。我正在寻找一种可以将SQL表转换为Java Bean类的工具。这将有助于节省时间。 这是一个例子: studentTable(studen
问题内容: 我在使用Python将字符串更改为大写时遇到问题。在我的研究中,我知道了,但是没有用。 如下代码: 给出此错误信息: 我的问题是: 如何在Python中将字符串转换为大写? 问题答案: 请参见字符串方法。
问题内容: 有没有一种简单的方法可以避免处理文本编码问题? 问题答案: 您确实无法避免处理文本编码问题,但是Apache Commons中已有一些解决方案: 至: 至: 您只需要选择所需的编码即可。
问题内容: 您能否指导我如何将图像从URL转换为base64编码? 问题答案: 我认为应该是:
问题内容: 是否可以添加到列中以将其值转换为小写的属性?而不是通过PHP对每个单个值执行此操作? 问题答案: 您可能可以通过在插入或更新时触发的触发器来做到这一点。就我自己而言,我只想创建一个包含所讨论列的小写版本的视图。视图的SQL可能看起来像
问题内容: 我正在使用A 将Json从Web转换为字符串。 这可能很简单,但是我似乎无法将此字符串转换为。 我怎样才能做到这一点? 问题答案: 请参阅文档和示例。