All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.anji.plus.gaea.security.GaeaSecurityAutoConfiguration Maven / Gradle / Ivy

package com.anji.plus.gaea.security;

import com.anji.plus.gaea.security.handler.GaeaFilterExceptionHandler;
import com.anji.plus.gaea.security.security.GaeaUserDetailsService;
import com.anji.plus.gaea.security.security.JwtTokenAuthenticationFilter;
import com.anji.plus.gaea.security.security.url.UrlAccessDecisionManager;
import com.anji.plus.gaea.security.security.url.UrlFilterInvocationSecurityMetadataSource;
import com.anji.plus.gaea.annotation.condition.ConditionalOnGaeaComponent;
import com.anji.plus.gaea.security.security.SecurityConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigurationPackage;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.UserDetailsService;

/**
 * 盖亚自动装配类
 * @AutoConfigurationPackage 添加当前类所在包加入到AutoConfigurationPackages,保证该包及其子包下的实体类被扫描到
 * @author lr
 * @since 2021-01-11
 */

@ConditionalOnClass(WebSecurityConfigurerAdapter.class)
@AutoConfigurationPackage
@ComponentScan(basePackages = {"com.anji.plus.gaea.security.bean"})
@EnableConfigurationProperties(GaeaSecurityProperties.class)
@ConditionalOnGaeaComponent(GaeaSecurityProperties.COMPONENT_NAME)
@Import(SecurityConfiguration.class)
public class GaeaSecurityAutoConfiguration {

    /**
     * token校验过滤器
     * @return
     */
    @Bean
    public JwtTokenAuthenticationFilter jwtTokenAuthenticationFilter() {
        return new JwtTokenAuthenticationFilter();
    }

    /**
     * 过滤器异常处理
     * @return
     */
    @Bean
    public GaeaFilterExceptionHandler filterExceptionHandler() {
        return new GaeaFilterExceptionHandler();
    }

    /**
     * 自定义,从数据库获取用户信息
     *
     * @return
     */
    @Bean
    public UserDetailsService gaeaUserDetailsService() {
        return new GaeaUserDetailsService();
    }

    @Bean
    public UrlAccessDecisionManager urlAccessDecisionManager() {
        return new UrlAccessDecisionManager();
    }


    @Bean
    public UrlFilterInvocationSecurityMetadataSource urlFilterInvocationSecurityMetadataSource() {
        return new UrlFilterInvocationSecurityMetadataSource();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy