美文网首页java springJHipster
JHipster单体应用登录

JHipster单体应用登录

作者: starteasy | 来源:发表于2016-09-27 21:39 被阅读771次

           JHipster单体应用的登录处理,集成了spring security。之前对 spring security不太了解,这次遇到一些问题,把自己的一些了解记录一下。

            整体上单体不使用oauth的认证相对简单不少,在SecurityConfiguration中做下配置:

    .and()

    .rememberMe()

    .rememberMeServices(rememberMeServices)

    .rememberMeParameter("remember-me")

    .key(jHipsterProperties.getSecurity().getRememberMe().getKey())

    .and()

    .formLogin()

    .loginProcessingUrl("/api/authentication")

    .successHandler(ajaxAuthenticationSuccessHandler)

    .failureHandler(ajaxAuthenticationFailureHandler)

    .usernameParameter("j_username")

    .passwordParameter("j_password")

    .permitAll()

            浏览器访问url会经过 AbstractAuthenticationProcessingFilter 其中会对url进行匹配处理(根据loginProcessingUrl值【猜测】),所以登录页面的提交url是“api/authentication”(其中 用户名、密码 parameter名是"j_username"和"j_password") 如果匹配到是进行认证的url请求,会调用 UsernamePasswordAuthenticationFilter(AbstractAuthenticationProcessingFilter的子类) 的 attemptAuthentication方法,如果用户名/密码正确,会将用户信息放在SecurityContextHolder.getContext()(默认使用ThreadLocal实现), 如果 使用了 rememberMe 特性,后续的每次请求 会在 RememberMeAuthenticationFilter中 获取 SecurityContextHolder.getContext(),获取到用户信息 就转到后面的正常处理。

    相关文章

      网友评论

        本文标题:JHipster单体应用登录

        本文链接:https://www.haomeiwen.com/subject/nbucyttx.html