Уведомление о запуске весенней загрузкиBroadcasterSupport :: sendNotification NullPointerException для незащищенных конечных точек - PullRequest
0 голосов
/ 08 июня 2019

У меня есть основанный на загрузке спринт бэкэнд (сильно модифицированный из JHipster).Я вижу следующую ошибку всякий раз, когда какие-либо запросы сделаны к незащищенным путям.Ищете идеи о том, что может быть причиной и как устранить ошибку.Спасибо!

Я использую jhipster SecurityConfigurator с небольшими изменениями.См. Код ниже.

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@Import(SecurityProblemSupport::class)
class SecurityConfiguration(private val userDetailsService: UserDetailsService,
                            private val authenticationManagerBuilder: AuthenticationManagerBuilder,
                            private val tokenProvider: TokenProvider,
                            private val jHipsterProperties: JHipsterProperties,
                            private val corsFilter: CorsFilter,
                            private val problemSupport: SecurityProblemSupport) : WebSecurityConfigurerAdapter() {

  private val log = LoggerFactory.getLogger(SecurityConfiguration::class.java)

  @PostConstruct
  fun init() {
    try {
      authenticationManagerBuilder
          .userDetailsService(userDetailsService)
          .passwordEncoder(passwordEncoder())
    } catch (e: Exception) {
      throw BeanInitializationException("Security configuration failed", e)
    }

  }

  @Bean
  @Override
  @Throws(Exception::class)
  override fun authenticationManagerBean(): AuthenticationManager {
    return super.authenticationManagerBean()
  }

  @Bean
  fun passwordEncoder(): PasswordEncoder {
    return BCryptPasswordEncoder()
  }

  @Bean
  fun grantedAuthorityDefaults(): GrantedAuthorityDefaults {
    return GrantedAuthorityDefaults("") // Remove the ROLE_ prefix
  }


  @Throws(Exception::class)
  override fun configure(web: WebSecurity) {
    web.ignoring()
        .antMatchers(HttpMethod.OPTIONS, "/**")
        .antMatchers("/app/**/*.{js,html}")
        .antMatchers("/i18n/**")
        .antMatchers("/content/**")
        .antMatchers("/test/**")
  }

  @Throws(Exception::class)
  override fun configure(http: HttpSecurity) {
    http
        .csrf()
        .disable()
        .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter::class.java)
        .exceptionHandling()
        .authenticationEntryPoint(problemSupport)
        .accessDeniedHandler(problemSupport)
        .and()
        .headers()
        .frameOptions()
        .disable()
        .and()
        .sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
        .and()
        .authorizeRequests()
        .antMatchers("/api/register").permitAll()
        .antMatchers("/api/activate").permitAll()
        .antMatchers("/api/authenticate").permitAll()
        .antMatchers("/api/account/reset-password/init").permitAll()
        .antMatchers("/api/account/reset-password/finish").permitAll()
        .antMatchers("/api/counties").permitAll()
        .antMatchers("/api/**").authenticated()
        .antMatchers("/websocket/**").permitAll()
        .antMatchers("/webhooks/stripe").permitAll()
        .antMatchers("/admin").hasRole("ADMIN")
        .and()
        .apply(securityConfigurerAdapter())
  }

  private fun securityConfigurerAdapter(): JWTConfigurer {
    return JWTConfigurer(tokenProvider)
  }
}

Всякий раз, когда мой угловой сайт достигает конечной точки /api/authenticate, я получаю следующую ошибку:

2019-06-07 17:46:37.014 DEBUG 22072 --- [nio-8080-exec-2] javax.management                         : NotificationBroadcasterSupport::sendNotification

java.lang.NullPointerException: null
    at io.micrometer.core.instrument.binder.tomcat.TomcatMetrics.lambda$registerMetricsEventually$aa4da135$1(TomcatMetrics.java:260)
    at java.management/javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:238)
    at java.management/javax.management.MBeanServerDelegate.sendNotification(MBeanServerDelegate.java:211)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.sendNotification(DefaultMBeanServerInterceptor.java:1473)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1867)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:955)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:890)
    at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:320)
    at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
    at org.apache.tomcat.util.modeler.Registry.registerComponent(Registry.java:639)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.register(AbstractProtocol.java:1061)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:825)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:835)

Примечание. На самом деле это не влияет на функциональностьприложение, но я бы предпочел, чтобы приложение не выдавало ошибки каждый раз, когда кто-то пытается попасть на страницу входа ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...