| | |
| | | package com.ruoyi.framework.config; |
| | | |
| | | import com.ruoyi.framework.web.ssoAuth.SsoCodeAuthenticationProvider; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.security.authentication.AuthenticationManager; |
| | | import org.springframework.security.authentication.AuthenticationProvider; |
| | | import org.springframework.security.authentication.ProviderManager; |
| | | import org.springframework.security.authentication.dao.DaoAuthenticationProvider; |
| | | import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; |
| | |
| | | import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; |
| | | import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * spring security配置 |
| | | * |
| | |
| | | * 自定义用户认证逻辑 |
| | | */ |
| | | @Autowired |
| | | @Qualifier("UserDetailsServiceImpl") |
| | | private UserDetailsService userDetailsService; |
| | | |
| | | /** |
| | | * sso自定义校验 |
| | | */ |
| | | @Autowired |
| | | @Qualifier("UserDetailsByOpenIdServiceImpl") |
| | | private UserDetailsService userDetailsServiceBySSO; |
| | | |
| | | /** |
| | | * 认证失败处理类 |
| | |
| | | DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider(); |
| | | daoAuthenticationProvider.setUserDetailsService(userDetailsService); |
| | | daoAuthenticationProvider.setPasswordEncoder(bCryptPasswordEncoder()); |
| | | return new ProviderManager(daoAuthenticationProvider); |
| | | |
| | | // sso登陆鉴权 Provider |
| | | SsoCodeAuthenticationProvider ssoCodeAuthenticationProvider = new SsoCodeAuthenticationProvider(); |
| | | ssoCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceBySSO); |
| | | List<AuthenticationProvider> providers = new ArrayList<>(); |
| | | |
| | | providers.add(ssoCodeAuthenticationProvider); |
| | | providers.add(daoAuthenticationProvider); |
| | | |
| | | return new ProviderManager(providers); |
| | | } |
| | | |
| | | /** |