- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我的安全配置文件,我想将其更改为java配置
<beans:bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
<beans:property name="accessDecisionManager" ref="accessDecisionManager" />
<beans:property name="authenticationManager" ref="authenticationManager" />
<beans:property name="securityMetadataSource" ref="securityMetadataSource" />
</beans:bean>
<authentication-manager alias="authenticationManager" xmlns="http://www.springframework.org/schema/security">
<authentication-provider ref="customAuthentication"></authentication-provider>
</authentication-manager>
<beans:bean name="accessDecisionManager" class="com.xy.security.CustomAccessDecisionManager" ></beans:bean>
<beans:bean name="securityMetadataSource" class="com..xy.security.InvocationSecurityMetadataSourceService">
</beans:bean>
<beans:bean id="customAuthentication" class="com.xy.security.CustomAuthentication" />
<beans:bean id="securityExceptionTranslationHandler" class="org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler">
<beans:property name="exceptionMappings">
<beans:props>
<beans:prop key="org.springframework.security.authentication.CredentialsExpiredException">/changepassword.xhtml</beans:prop>
</beans:props>
</beans:property>
<beans:property name="defaultFailureUrl" value="/login.jsp" />
</beans:bean> ====================================================
我想将其更改为 java 配置,下面是我的代码,但失败了
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private CustomAuthentication customAuthentication;
@Autowired
private CustomAccessDecisionManager customAccessDecisionManager;
@Autowired
private InvocationSecurityMetadataSourceService invocationSecurityMetadataSourceService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(customAuthentication);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login*","/favicon.ico","/","/**/*.css" ,"/images/*.*","/js/*.js","/bt-fonts/*.*").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login")
.defaultSuccessUrl("/admin*")
.failureUrl("/login?error=true")
.and()
.logout().logoutSuccessUrl("/login").invalidateHttpSession(true).deleteCookies("true")
.and()
.authenticationProvider(customAuthentication)
//.accessDecisionManager(customAccessDecisionManager)
//.authorizeRequests().accessDecisionManager(customAccessDecisionManager)
//.csrf().disable()
;
}
我有一个类,其中有自定义身份验证逻辑
public class CustomAccessDecisionManager implements AccessDecisionManager{
-@Override
public Authentication authenticate(Authentication authentication){
//这里有一些代码}
}
还有像下面这样的另一个类,我有自定义授权逻辑
public class CustomAuthentication implements AuthenticationProvider{
@Override
public void decide(Authentication arg0, Object object, Collection<ConfigAttribute> arg2)
//这里有一些代码
}
最佳答案
第一个(我建议)是更新您的配置以包含 WebExpressionVoter。例如:
@Bean
public AccessDecissionManager defaultAccessDecisionManager() {
List<AccessDecisionVoter<FilterInvocation>> voters = new ArrayList<AccessDecisionVoter<FilterInvocation>>();
voters.add(new WebExpressionVoter());
voters.add(new CustomVoter());
AccessDecissionManager result = new UnanimousBased();
result.setDecisionVoters(voters);
return result;
}
第二个选项是更改为不在 Spring Security 的 url 映射中使用表达式。例如
protected void configure(HttpSecurity http) throws Exception {
http
.apply(new UrlAuthorizationConfigurer())
.accessDecisionManager(defaultAccessDecisionManager())
.antMatchers("/admin/**").hasRole("ADMINGROUP")
.anyRequest().authenticated().and()
....
}
关于java - 如何在 Spring Boot 中配置自定义 AccessDecisionManager 和自定义 AuthenticationProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51155807/
我见过here on GitHub默认配置使用如下优先级标签: 我在 AccessDecisionManager 中找不到对这个“优先级”的任何引用。本身。 priority对决策过程有
首先我想问一下,是否可以在 Java 配置中访问默认的 AccessDecisionManager(不使用任何 xml 文件)? 次要的,我的问题看起来像那样。我想将 RoleVoter 添加到我的配
我想在我的 spring 应用程序的授权过程中添加一些业务逻辑,我认为实现自定义 AccessDecisionVoter 是最好的解决方案。 那太好了,但我还没有找到任何方法在不完全重新定义 Acce
我只是好奇当我需要使用自定义 AccessDecisionManager 时我需要你们经验丰富的人提供一些用例,如果有人以前用过的话,谢谢。 最佳答案 Spring Security docs 中给出
我有以下情况:我的应用程序的授权机制是使用 Spring security 实现的。中央类实现了 AccessDecisionManager 并使用选民(每个选民都实现了 AccessDecision
我将基于 ([UserRoleRight]) 模型实现自定义授权,并且应该将权限与 Controller 和方法名称(例如“ Controller |方法”)进行比较。 我使用自定义 UserDeta
我正在尝试为受 Spring 安全保护的 servlet 实现 AccessDecisionManager,并且需要检查“Authorization” header 的内容。我有以下代码,但 head
我正在尝试使用 Java Config 设置一个 Spring Security 3.2 项目,根本不使用 XML。我想要一个支持 RoleHierarchyVoter 和 AclEntryVoter
自定义 AccessDecisionManager 不会在添加过滤器时或其他情况下被调用。理想情况下希望设置 filterBefore 和自定义 AccessDecisionManager(使用 Sp
下面是我的安全配置文件,我想将其更改为java配置 /changepassword
我们正在使用 Grails spring 安全插件: http://grails.org/plugin/spring-security-core 我只是想将默认访问决策管理器从默认的 Affirmat
我尝试使用 spring security 进行一些简单的记住我身份验证,但是当我尝试实现 accessDecisionManager 时发现此错误。这里是错误日志: org.springframew
我是一名优秀的程序员,十分优秀!