0

I have added a different port and context-path for spring boot actuator in my application properties but i am getting the following response when i access

localhost:9091/app/actuator/health

{
    "payload": {
        "timestamp": "2019-01-04T13:10:42Z",
        "status": 500,
        "error": "Internal Server Error",
        "exception": "org.springframework.beans.factory.BeanCreationException",
        "message": "Error creating bean with name 'scopedTarget.oauth2ClientContext': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.",
        "path": "/app/actuator/health"
    }
}

here's my configuration

server:
  port: 9090
  contextPath: /app
...
management:
  port: 9091
  ssl.enabled: false
  security:
    roles: ACTUATOR_GET
  context-path: /app/actuator
endpoints:
  hypermedia:
    enabled: true
...

What am i doing wrong ?

i am using spring-boot 1.5

Thiru
  • 2,541
  • 4
  • 25
  • 39
Mansoor Ali
  • 153
  • 12
  • did you customize /health result within your code? if so can you post any relevant snippet related to it? – stacker Jan 04 '19 at 14:22
  • may be these answers help you, having the same error msg: https://stackoverflow.com/questions/35875098/protecting-rest-api-with-oauth2-error-creating-bean-with-name-scopedtarget-oau in short: Add a RequestContextListener to your config. – Dominik Jan 04 '19 at 14:25
  • I think it's a kind of security problem , check the console of your service, perhaps it a kind of autorization of the actuator endpoints with oauth2 !? do you implement Oauth ? because your config is correct and the url access will be `http://host:9091/app/actuator/health` – Abder KRIMA Jan 04 '19 at 14:39
  • Issue solved. The exception was being originated from a custom `OncePerRequestFilter` that implemented `RememberMeServices`. In that filter I was clearing OAuthContext by doing `restTemplate.getOAuth2ClientContext().setAccessToken(null);` - which was causing `BeanCreationException`. I have put this statement in a try-catch block and the actuator is working fine now. – Mansoor Ali Jan 07 '19 at 07:02

1 Answers1

0

Issue solved. The exception was being originated from a custom OncePerRequestFilter that implemented RememberMeServices. In that filter I was clearing OAuthContext by doing restTemplate.getOAuth2ClientContext().setAccessToken(null); - which was causing BeanCreationException. I have put this statement in a try-catch block and the actuator is working fine now.

Mansoor Ali
  • 153
  • 12