小编Mac*_*iak的帖子

DateTimeFormatter在解析单位数部分时过于严格

我有一个格式MM/dd/yyyy,所以格式化的所有内容都是单个数字的前导ZERO.问题是,在分析我希望能够解析既"11/25/2018""5/25/2018",但格式应该总是返回前导零.

我试过ResolverStyle没有运气就尝试了不同的选择.

建立我自己的特定格式似乎是不合理的,当你认为它是开箱即用的SimpleDateFormat.

会欣赏任何想法,不涉及从头开始使用格式化程序 FormatterBuilder

java parsing datetime-format java-8

7
推荐指数
3
解决办法
697
查看次数

为什么我的 oauth2 配置不使用我的自定义 UserService?

我正在尝试使用谷歌的身份验证。我用的是springboot2,所以大部分配置都是自动的。身份验证本身运行良好,但之后我想用我自己的数据(角色、用户名等)填充 Principal。

我已经创建了扩展 DefaultOauth2UserService 的 MyUserService,我正在尝试按如下方式使用它:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    MyUserService myUserService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .oauth2Login()
                .userInfoEndpoint()
                    .userService(myUserService);
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经用调试器检查过,该应用程序实际上从未使用过 loadUser 方法。这是 MyUserService 的实现:

@Component
public class MyUserService extends DefaultOAuth2UserService {
    @Autowired
    UserRepository userRepository;

    public MyUserService(){
        LoggerFactory.getLogger(MyUserService.class).info("initializing user service");
    }

    @Override
    public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
        OAuth2User oAuth2User = super.loadUser(userRequest);
        Map<String, Object> attributes = oAuth2User.getAttributes();

        String emailFromGoogle = (String) attributes.get("email");
        User user = userRepository.findByEmail(emailFromGoogle); …
Run Code Online (Sandbox Code Playgroud)

java oauth-2.0 spring-boot spring-security-oauth2

4
推荐指数
1
解决办法
2032
查看次数