Почему я не вижу журналы безопасности Spring? - PullRequest
0 голосов
/ 23 марта 2020

** Когда я добавляю пружинную защиту, я не вижу журналы с моего контроллера в методе POST. В методе достань все нормально. Если я правильно понимаю, мне нужно как-то добавить весенние фильтры в логирование, но как? В metgod POST логи не работают ... почему? В сервисном слое, где безопасность получает пароль от работающих журналов БД ... **

@Controller("LoginController")
public class LoginController {
private final Logger logger = LogManager.getLogger(LoginController.class);

private SearchPassportForm searchPassportForm = new SearchPassportForm();

@Autowired
private CustomerService customerService;

@RequestMapping(value = "/logIn", method = RequestMethod.GET)
public String logIn(Model model) {
    model.addAttribute("searchPassportForm", searchPassportForm);
    model.addAttribute("customer", new Customer());
    logger.debug("METHODD GETTTT");
    return "logIn";
}

@RequestMapping(value = "/logIn", method = RequestMethod.POST)
public String logInPost(@ModelAttribute Customer customer, SearchPassportForm searchPassportForm,
                        Model model, HttpSession session) {
    logger.debug("login customer " +  customer.toStringLogin());
    logger.debug("login searchPassportForm " +  searchPassportForm.toString());
    logger.info("INFOOOOOOOOOOOOOOOOOOO -->>>>>>>>>>>>>>>>");
    UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
    System.out.println("authentication ----->>>> " + authentication.getName());
    validateCustomer(authentication.getPrincipal());
    Customer customerLogged = ((UserDetailsImpl) authentication.getPrincipal()).getCust();
    logger.debug("login SECURITY ------> " +  customerLogged.toStringLogin());

    session.setAttribute("customerID", customerLogged.getId());

    return "redirect:/home";
}
}


**Spring config**

    @Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter 
{

    @Bean
    public UserDetailsServiceImpl userDetailsService() {
        return new UserDetailsServiceImpl();
    }

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public DaoAuthenticationProvider daoAuthenticationProvider () {
        DaoAuthenticationProvider authenticationProvider = new 
DaoAuthenticationProvider();

authenticationProvider.setUserDetailsService(userDetailsService());

authenticationProvider.setPasswordEncoder(bCryptPasswordEncoder());
        return authenticationProvider;
    }

    @Override
    protected void configure(AuthenticationManagerBuilder amb) throws 
Exception {
        amb.authenticationProvider(daoAuthenticationProvider());
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring()
                .antMatchers("/resources/**")
                .antMatchers("/resources/bootstrapComponent/**")
                .antMatchers("/resources/css/**")
                .antMatchers("/resources/patternViews/**");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.headers()
                .defaultsDisabled()
                .contentTypeOptions().and()
                .frameOptions().and()
                .xssProtection()
                .block(true).and()
                .contentSecurityPolicy ( "script-src 'self'").and()
                .cacheControl();
        http.authorizeRequests()
                .antMatchers("/main", "/singin", 
 "/signUp").permitAll()
                .antMatchers("/home").hasRole("User")
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/singin").permitAll()
                .loginProcessingUrl("/singin")
                .usernameParameter("username")
                .passwordParameter("password")
                .defaultSuccessUrl("/home")
                .and()
                .logout()
                .logoutUrl("/logOut")
                .logoutSuccessUrl("/singin");
    }
}

<Configuration>
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - 
%msg%n"/>
    </Console>

</Appenders>
<Loggers>

    <Logger name="org.springframework.web" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="com.InternationalPassport.businessLayer" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="com.InternationalPassport.controller" additivity="true">
        <level value="debug, info"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="com.InternationalPassport.springConfigs.WebSecurityConfig" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="com.InternationalPassport.security" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="org.springframework.security" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="org.springframework.security.web" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>

    <Logger name="" additivity="true">
        <level value="debug"/>
        <AppenderRef ref="Console"/>
    </Logger>


    <Root level="debug">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
</Configuration>

maven dependisies.
<dependency>
<groupId>org.slf4j</groupId>
     <artifactId>jcl-over-slf4j</artifactId>
     <version>1.7.30</version>
  </dependency>

 <dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>${logger.Log4J2.version}</version>
</dependency>

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>${logger.Log4J2.version}</version>
</dependency>

  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jcl</artifactId>
      <version>2.13.1</version>
  </dependency>



If anyone can help me - thanks for all.
...