怎么关掉springsecurity(spring security 关闭默认拦截)

技术如何解决SpringSecurity自定义AuthenticationProvider无法@Autowire的问题这篇文章主要介绍了如何解决SpringSecurity自定义AuthenticationProvide

这篇文章主要介绍了如何解决SpringSecurity自定义AuthenticationProvider无法@Autowire的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

自定义AuthenticationProvider无法@Autowire的解决

在AuthenticationProvider中使用@自动连线注入时始终报空问题

找了半天发现应该在SecurityConfig配置类中

@EnableWebSecurity

公共类security config extendwebsecurity configurator {

在设置AuthenticationProvider时

应该使用@豆的方式设置

@豆

customauthenticationprovidercoutauthenticationprovider(){ 0

returnnew customauthenticationprovider();

}

@覆盖

受保护的void configure(authenticationmanagerbuildruth)throwsException {

auth。authenticationprovider(customAuthenticationProvider());

}

之前的错误的设置方式是

@覆盖

受保护的void configure(authenticationmanagerbuildruth)throwsException {

auth。authenticationprovider(new customauthenticationprovider());

}好了,这就可以实现AuthenticationProvider时自由的使用@自动连线了

自定义AuthenticationProvider的简单例子

xml 配置

认证管理器

身份验证-provider ref=' MyAuthenticationProvider '/

/身份验证-管理器

bean : bean id=' userdailsservice ' class=' net。螳螂。保安。auth。nmuserdailsservice “/

bean s : bean id=' MyAuthenticationProvider ' class=' net。螳螂。保安。auth。' MyAuthenticationProvider '

beans 3360属性名=' UserDetailservice '

beans:beanclass=' net。螳螂。保安。auth。nmuserdailsservice ' n

bsp;     
            </beans:bean>
        </beans:property>
  </beans:bean>

net.mantis.security.auth.MyAuthenticationProvider

public class MyAuthenticationProvider implements AuthenticationProvider {
 
    UserDetailsService userDetailsService;
    public Authentication authenticate(Authentication authentication)
            throws AuthenticationException {
         //username
        System.out.println("user name: "+authentication.getName());
        //password
        System.out.println("password: "+authentication.getCredentials());
        System.out.println("getPrincipal: "+authentication.getPrincipal());
        System.out.println("getAuthorities: "+authentication.getAuthorities());
        System.out.println("getDetails: "+authentication.getDetails());
        UserDetails userDetails = (UserDetails)this.userDetailsService.loadUserByUsername(authentication.getName());
      
        UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(
                userDetails, authentication.getCredentials(),userDetails.getAuthorities());
        return result;
    }
    public boolean supports(Class authentication) {
         return true;
    }
    public void setUserDetailsService(UserDetailsService userDetailsService){
        this.userDetailsService = userDetailsService;
    }
}

net.mantis.security.auth.NMUserDetailsService

public class NMUserDetailsService implements UserDetailsService {
    @Override
    public UserDetails loadUserByUsername(String userName)
            throws UsernameNotFoundException {
        ArrayList list = new ArrayList();
        list.add(new SimpleGrantedAuthority("ROLE_SUPERVISOR"));
        User details = new User("rod", "koala", list);
        return details;
    }
}

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决SpringSecurity自定义AuthenticationProvider无法@Autowire的问题”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153409.html

(0)

相关推荐

  • 微服务设计的方法是什么

    技术微服务设计的方法是什么这篇文章主要讲解了“微服务设计的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微服务设计的方法是什么”吧!一、微服务架构理论1.六边形

    攻略 2021年11月16日
  • postman自动调用获取token

    技术postman自动调用获取token postman自动调用获取tokenPostman不光支持单次请求,还支持环境变量、全局变量、集合变量
    本文使用Collection Variable
    Coll

    礼包 2021年12月2日
  • MySQL学习笔记:九、子查询

    技术MySQL学习笔记:九、子查询 MySQL学习笔记:九、子查询子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。
    SQL 中子查询的使用大大增强了 SEL

    礼包 2021年12月15日
  • 绩点换算,5分制绩点怎么换算成百分制

    技术绩点换算,5分制绩点怎么换算成百分制您好绩点换算,澳大利亚留学研究生申请条件:国内211大学,大学平均成绩75分以上;非211大学,平均成绩80分以上;目前八大里的西澳大学,阿德莱德大学都是算加权平均分,不算马哲或者

    生活 2021年10月23日
  • 一次性遍历当前文件夹下的所有Excel文件并导出为Flutter的ListData格式文档。

    技术一次性遍历当前文件夹下的所有Excel文件并导出为Flutter的ListData格式文档。 一次性遍历当前文件夹下的所有Excel文件并导出为Flutter的ListData格式文档。一次性遍历当

    礼包 2021年11月13日
  • c++编译器(c++培训)

    技术怎么使用VS2022开发在线远程编译部署的C++程序这篇文章主要介绍“怎么使用VS2022开发在线远程编译部署的C++程序”,在日常操作中,相信很多人在怎么使用VS2022开发在线远程编译部署的C++程序问题上存在疑

    攻略 2021年12月16日