嗨,Spring Security专家。
我的要求。
我有两套UI。其中一组是登录和注销,需要使用基本身份验证(使用用户名密码凭据)由spring security进行保护。我使用了HybridAuthenticationProvider
实现AuthenticationProvider
,并实现了它。
第二个和其余的UI需要通过在HTTP Header中传递令牌来支持。我使用CustomAuthentiationEntryPoint
实现AuthenticationEntryPoint
GenericFilterBean
并且可以实现它。
现在我想做单Spring安全。xml实现上述两种功能。最终,我将一组UI页面组合在一起,在这些页面中,我希望通过凭证(AuthenticationProvider
)保护登录/注销页面,而我希望通过令牌(AuthenticationEntryPoint
)保护其余UI。
当我把所有的一切都放在Spring的安全。xml(如下所述),我得到以下异常。
例外情况:
异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.security.web.authentication.UsernamePasswordAuthentiationFilter#0'的bean时出错:无法解析对bean'org.springframework.security.authentication.ProviderManager#0'的引用,同时设置bean属性'身份验证管理器';嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.security.authentication.ProviderManager#0'的bean时出错:无法解析org.springframework.beans.factory.support.的匹配构造函数(提示:为简单参数指定index/type/name参数以避免类型歧义)BeanDecitionValueResolver.resolve参考(BeanDecitionValueResolver.java:328)
样品Spring-security.xml
<security:http auto-config="true" authentication-manager-ref="hybridAuthenticationProvider">
<security:intercept-url pattern="/auth/login" access="ROLE_USER" />
</security:http>
<security:http realm="Protected API" use-expressions="true"
auto-config="false" create-session="stateless" entry-point-ref="CustomAuthenticationEntryPoint">
<security:custom-filter ref="authenticationTokenProcessingFilter"
position="FORM_LOGIN_FILTER" />
<security:intercept-url pattern="/welcome"
access="isAuthenticated()" />
</security:http>
<bean id="CustomAuthenticationEntryPoint"
class="com.ckatudia.tutorial.authentrypoint.CustomAuthenticationEntryPoint" />
<bean id="authenticationTokenProcessingFilter"
class="com.ckatudia.tutorial.authentrypoint.AuthenticationTokenProcessingFilter" />
<bean id="TokenUtils"
class="com.ckatudia.tutorial.authentrypoint.TokenUtils" />
<bean id="authenticationManager"
class="com.ckatudia.tutorial.auth.TokenAuthenticationProvider" />
<bean id="hybridAuthenticationProvider"
class="com.ckatudia.tutorial.auth.HybridAuthenticationProvider">
</bean>
<security:authentication-manager>
<security:authentication-provider ref="hybridAuthenticationProvider"/>
</security:authentication-manager>
我删除了authentication manager ref=“hybridAuthenticationProvider”,然后在部署时出现以下异常。
例外情况:
org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.security.filterChainProxy”的bean时出错:初始化方法调用失败;嵌套异常java.lang.IllegalArgumentException:在过滤器链中的其他模式之前定义了通用匹配模式 ('/**') ,导致它们被忽略。请检查安全性中的顺序:http命名空间或FilterChainProxy bean配置
您有此异常,因为超文本传输协议元素的de"模式"属性默认为 "/**". 由于您有两个没有特定模式的"超文本传输协议"元素,因此采用默认值,并且它们各自涵盖相同的uis集。
尝试在两者上添加不同的图案:
<http pattern="/foo/**" ... >
...
</http>
<http pattern="/bar/**" ... >
...
</http>
在WAR的情况下,它试图将请求转发到/error页面,并寻找它的处理程序方法(请参见底部的日志)。 最后我得到以下回应: 我该换什么才能得到401?
在Java,你可以做这样的事情: 在Kotlin有可能做同样的事情吗?假设是抽象的,并且不实现
我的环境:windows10和python 3.6 目的:我想建立一个在线聊天室,当客户端连接到服务器上,并向服务器发送消息时,服务器将向所有与它有联系的客户端广播消息。 关键点:所以有一个问题,我想让客户机监听服务器,同时等待输入。(代码发布在下面) 我的解决方案:当我试图通过python的线程来解决这个问题时,结果是,假设客户机A和客户机B都连接到服务器,并且客户机A发送多条消息,而客户机B只
问题内容: 我想拥有一个在Java中同时实现Map和List接口的对象。这个想法与以下问题类似:Java OrderedMap 我想将名称/值对添加到列表中,并让列表保留序列,但还可以按名称进行查找: 这是问题所在:创建此类时: 我收到一个编译错误: 如果我没有实现Map和List接口,那么有很多Java集合方法无法在此数据结构上使用。 (此外,上面的Java Ordered Map中提出的解决方
问题内容: 在Java中,您可以执行以下操作: 在Kotlin中可以做同样的事情吗?假设是抽象的并且没有实现 问题答案: 接口实现和类继承之间在语法上没有区别。只需列出冒号后用逗号分隔的所有类型,如下所示: 禁止多个类继承,而单个类可以实现多个接口。
我们的软件使用api(filenet p8),需要配置log4j。我们使用logBack和Spring Boot。我注意到,要在Spring Boot中使用log4j,我们必须排除logBack。这是不可能的。有没有办法在Spring Boot中并行运行log4j和logBack?谢啦