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

top.dcenter.ums.security.social.config.SocialSecurityAutoConfigurerAware Maven / Gradle / Ivy

package top.dcenter.ums.security.social.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import top.dcenter.ums.security.core.api.config.HttpSecurityAware;
import top.dcenter.ums.security.core.bean.UriHttpMethodTuple;
import top.dcenter.ums.security.social.properties.SocialProperties;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static org.springframework.http.HttpMethod.GET;
import static org.springframework.http.HttpMethod.POST;
import static top.dcenter.ums.security.core.bean.UriHttpMethodTuple.tuple;

/**
 * 把 social 第三方授权登录相关配置添加到 HttpSecurity 中。
 * @see HttpSecurityAware
 * @author zyw
 * @version V1.0  Created by 2020/5/12 12:02
 */
@Configuration
@AutoConfigureAfter({SocialAutoConfiguration.class})
@Slf4j
public class SocialSecurityAutoConfigurerAware implements HttpSecurityAware {

    private final SocialProperties socialProperties;

    private final SocialCoreConfig socialCoreConfig;

    @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
    public SocialSecurityAutoConfigurerAware(SocialProperties socialProperties,
                                             SocialCoreConfig socialCoreConfig) {
        this.socialProperties = socialProperties;
        this.socialCoreConfig = socialCoreConfig;
    }

    @Override
    public void postConfigure(HttpSecurity http) throws Exception {
        http.apply(socialCoreConfig);

    }

    @Override
    public void preConfigure(HttpSecurity http) {
        // dto nothing
    }

    @Override
    public Map>> getAuthorizeRequestMap() {
        final Map> permitAllMap = new HashMap<>(16);

        permitAllMap.put(tuple(GET, socialProperties.getCallbackUrl()), null);
        permitAllMap.put(tuple(GET, socialProperties.getCallbackUrl() + "/*"), null);
        permitAllMap.put(tuple(POST, socialProperties.getSocialUserRegisterUrl()), null);
        permitAllMap.put(tuple(GET, socialProperties.getSignUpUrl()), null);
        permitAllMap.put(tuple(GET, socialProperties.getFailureUrl()), null);

        Map>> resultMap = new HashMap<>(1);

        resultMap.put(HttpSecurityAware.PERMIT_ALL, permitAllMap);

        return resultMap;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy