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

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

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

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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 top.dcenter.ums.security.core.bean.UriHttpMethodTuple.tuple;

/**
 * social 第三方授权登录注册相关配置
 * @author zyw
 * @version V1.0  Created by 2020/5/15 22:22
 */
@Configuration
@ConditionalOnProperty(prefix = "ums.social", name = "social-sign-up-is-open", havingValue = "true")
@AutoConfigureAfter({SocialAuthenticationSignUpAutoConfig.class})
@Slf4j
public class SocialAuthenticationSignUpAutoConfigurerAware implements HttpSecurityAware {

    private final SocialAuthenticationSignUpAutoConfig socialAuthenticationSignUpAutoConfig;
    private final SocialProperties socialProperties;

    public SocialAuthenticationSignUpAutoConfigurerAware(SocialProperties socialProperties, SocialAuthenticationSignUpAutoConfig socialAuthenticationSignUpAutoConfig) {
        this.socialProperties = socialProperties;
        this.socialAuthenticationSignUpAutoConfig = socialAuthenticationSignUpAutoConfig;
    }

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

    @Override
    public void preConfigure(HttpSecurity http) throws Exception {
        // 短信验证码登录配置
        if (this.socialAuthenticationSignUpAutoConfig != null)
        {
            http.apply(this.socialAuthenticationSignUpAutoConfig);
        }
    }

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

        permitAllMap.put(tuple(GET, this.socialProperties.getSignUpUrl()), null);
        permitAllMap.put(tuple(GET, this.socialProperties.getFailureUrl()), null);
        permitAllMap.put(tuple(GET, this.socialProperties.getSignInUrl()), null);

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

        resultMap.put(HttpSecurityAware.PERMIT_ALL, permitAllMap);

        return resultMap;

    }
}






© 2015 - 2025 Weber Informatics LLC | Privacy Policy