Zuul cannot connect to Eureka - spring-cloud

I have a Eureka server running ok and a service connecting to it.
Now, I'm trying to connect a Zuul server to Eureka, but it isn't working.
I configure Zuul like this:
zuul:
ignoredServices: "*"
routes:
contacts-service:
path: /contacts/**
serviceId: contacts-service
eureka:
instance:
preferIpAddress: true
client:
serviceUrl:
defaultZone: http://eureka:admin#127.0.0.1:8761/eureka/
and my class as
#SpringBootApplication
#EnableZuulServer
#EnableDiscoveryClient
public class EdgeApplication {
public static void main(String[] args) {
SpringApplication.run(EdgeApplication.class, args);
}
}
It never show in eureka neither nothing on the zuul logs eureka-related. Seems like I'm still missing something.
Edit
When I changed to #EnableZuulProxy, I get an error and the zuul service is still not shown at Eureka server
2016-10-06 23:26:46.574 WARN 8303 --- [nio-8080-exec-3] o.s.c.n.z.filters.post.SendErrorFilter : Error during filtering
com.netflix.zuul.exception.ZuulException: Forwarding error
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:164) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:139) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:84) ~[spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:197) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:161) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:120) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:96) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:116) ~[zuul-core-1.2.2.jar:1.2.2]
at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:81) ~[zuul-core-1.2.2.jar:1.2.2]
at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:157) [spring-webmvc-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.cloud.netflix.zuul.web.ZuulController.handleRequestInternal(ZuulController.java:43) [spring-cloud-netflix-core-1.2.0.RELEASE.jar:1.2.0.RELEASE]
Edit 2
From time to time, I see this in the eureka server logs (not sure if its related or not to my problem, tho):
2016-10-06 23:52:32.824 ERROR 7053 --- [et_localhost-14] c.n.e.cluster.ReplicationTaskProcessor : Batch update failure with HTTP status code 401; discarding 1 replication tasks
2016-10-06 23:52:32.825 WARN 7053 --- [et_localhost-14] c.n.eureka.util.batcher.TaskExecutors : Discarding 1 tasks of TaskBatchingWorker-target_localhost-14 due to permanent error
2016-10-06 23:52:38.279 INFO 7053 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry : Running the evict task with compensationTime 1ms
and right after I call the `/contacts/ endpoint, I see this in the zuul proxy logs:
2016-10-06 23:52:50.256 INFO 9346 --- [nio-8080-exec-1] c.n.u.concurrent.ShutdownEnabledTimer : Shutdown hook installed for: NFLoadBalancer-PingTimer-contacts-service
2016-10-06 23:52:50.309 INFO 9346 --- [nio-8080-exec-1] c.netflix.loadbalancer.BaseLoadBalancer : Client:contacts-service instantiated a LoadBalancer:DynamicServerListLoadBalancer:{NFLoadBalancer:name=contacts-service,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2016-10-06 23:52:50.316 INFO 9346 --- [nio-8080-exec-1] c.n.l.DynamicServerListLoadBalancer : Using serverListUpdater PollingServerListUpdater
2016-10-06 23:52:50.322 INFO 9346 --- [nio-8080-exec-1] c.n.l.DynamicServerListLoadBalancer : DynamicServerListLoadBalancer for client contacts-service initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=contacts-service,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:com.netflix.loadbalancer.ConfigurationBasedServerList#29851ac8
2016-10-06 23:52:50.785 WARN 9346 --- [nio-8080-exec-1] o.s.c.n.z.filters.post.SendErrorFilter : Error during filtering

You are missing following dependency in your zuul service:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

I used this below which works for me.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

Related

Getting exception when running Okta Spring Security & Okta-Hosted Login Page example

I followed the steps in this sample code: https://github.com/okta/samples-java-spring/tree/master/okta-hosted-login
When I run the example using the command:
mvn -Dokta.oauth2.issuer=https://{yourOktaDomain}/oauth2/default \ -Dokta.oauth2.clientId={clientId} \ -Dokta.oauth2.clientSecret={clientSecret}
I get the following exception:
`2023-02-06 11:08:41.717 INFO 17288 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2023-02-06 11:08:41.725 INFO 17288 --- [ main] c.o.s.e.CodeFlowExampleApplication : Started CodeFlowExampleApplication in 2.881 seconds (JVM running for 5.358)
2023-02-06 11:08:53.299 INFO 17288 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-02-06 11:08:53.299 INFO 17288 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2023-02-06 11:08:53.301 INFO 17288 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms
2023-02-06 11:08:53.558 ERROR 17288 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.context.IWebContext.getExchange()Lorg/thymeleaf/web/IWebExchange;] with root cause
java.lang.NoSuchMethodError: org.thymeleaf.context.IWebContext.getExchange()Lorg/thymeleaf/web/IWebExchange;
at org.thymeleaf.extras.springsecurity5.util.Spring5VersionSpecificUtility.isWebMvcContext(Spring5VersionSpecificUtility.java:80) ~[thymeleaf-extras-springsecurity5-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.thymeleaf.extras.springsecurity5.util.SpringVersionSpecificUtils.isWebMvcContext(SpringVersionSpecificUtils.java:118) ~[thymeleaf-extras-springsecurity5-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.thymeleaf.extras.springsecurity5.util.SpringSecurityContextUtils.getAuthenticationObject(SpringSecurityContextUtils.java:127) ~[thymeleaf-extras-springsecurity5-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.thymeleaf.extras.springsecurity5.auth.AuthUtils.getAuthenticationObject(AuthUtils.java:102) ~[thymeleaf-extras-springsecurity5-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.thymeleaf.extras.springsecurity5.dialect.expression.SpringSecurityExpressionObjectFactory.buildObject(SpringSecurityExpressionObjectFactory.java:91) ~[thymeleaf-extras-springsecurity5-3.1.1.RELEASE.jar:3.1.1.RELEASE]
...`
I also tried running this sample from my Intellij IDEA IDE and when I open it I get the following error:
'parent.relativePath' of POM com.example.okta:okta-spring-boot-oauth-code-flow-example:0.0.1-SNAPSHOT (C:\Users\fteran\repos\demos\okta-github\samples-java-spring\okta-hosted-login\pom.xml) points at com.okta.examples:aggregator instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure
I was kind of expecting the sample code to work if I was very careful to follow the instructions, which I think I did, at this point I am not sure if this is an issue on my local or if there is an issue with the sample code itself.
Try this example: https://github.com/okta-samples/okta-spring-boot-sample/
It's more up-to-date.

Failing to start up HazelCast on AWS ECS

I'm trying to start up Hazelcast on AWS ECS. I have gone through the tutorial and have enabled all the permissions on the task role i.e decribeTasks, lisTasks etc. I have have a very simple configuration file
hazelcast:
cluster-name: hs-dcom-hazelcast
network:
join:
multicast:
enabled: false
aws:
enabled: true
interfaces:
enabled: true
interfaces:
- 10.106.*.*
However when the container tries to start it throws the following error
2023-01-23T14:47:16.975Z INFO 835 --- [ main] com.hazelcast.instance.impl.Node : [10.106.139.69]:5701 [hs-dcom-hazelcast] [5.0-BETA-1] Shutting down node engine...
7467 2023-01-23T14:47:17.004Z INFO 835 --- [ main] c.hazelcast.instance.impl.NodeExtension : [10.106.139.69]:5701 [hs-dcom-hazelcast] [5.0-BETA-1] Destroying node NodeExtension.
7468 2023-01-23T14:47:17.004Z INFO 835 --- [ main] com.hazelcast.instance.impl.Node : [10.106.139.69]:5701 [hs-dcom-hazelcast] [5.0-BETA-1] Hazelcast Shutdown is completed in 35 ms.
! 7469 2023-01-23T14:47:17.006Z WARN 835 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hazelcastInstance' defined in class path resource [org/springframework/boot/autoconfigure/hazelcast/HazelcastServerConfiguration$HazelcastServerConfigFileConfiguration.class]: Failed to instantiate [com.hazelcast.core.HazelcastInstance]: Factory method 'hazelcastInstance' threw exception with message: Failure executing: POST at: https://ecs.eu-west-1.amazonaws.com. Message: {"__type":"InvalidParameterException","message":"Identifier is for 570169269855. Your accountId is 531465454359"}. HTTP Error Code: 400
7470 2023-01-23T14:47:17.021Z INFO 835 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :
7471
7472 Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
7473 2023-01-23T14:47:17.052Z ERROR 835 --- [ main] o.s.boot.SpringApplication : Application run failed
7474
7475 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hazelcastInstance' defined in class path resource [org/springframework/boot/autoconfigure/hazelcast/HazelcastServerConfiguration$HazelcastServerConfigFileConfiguration.class]: Failed to instantiate [com.hazelcast.core.HazelcastInstance]: Factory method 'hazelcastInstance' threw exception with message: Failure executing: POST at: https://ecs.eu-west-1.amazonaws.com. Message: {"__type":"InvalidParameterException","message":"Identifier is for 570169269855. Your accountId is 531465454359"}. HTTP Error Code: 400
7476 at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.0.3.jar:6.0.3]
7477 at
I have tried looking on the forum, however can't seem to find anyone that has had this issue before.

Kafka failing to kill KafkaMessageListenerContainer when invalid credentials passed to custom SaslServer after upgrading from 2.4 to 3.2

I cannot get the upgraded version of kafka to kill the client when invalid credentials passed. We are using the latest version of the confluent open source platform; as well as the latest version of spring and the kafka-clients libary.
Note: This code does work when we try to use invalid credentials with the older version of Kafka(2.3). I'm thinking it's something on the broker side but I cannot get it to kill the client.
I have a custom implementation throws an AuthenticationException when invalid credentials are passed.
import javax.security.sasl.AuthenticationException;
import javax.security.sasl.SaslException;
import javax.security.sasl.SaslServer;
public class OurSaslServer implements SaslServer {
#Override
public byte[] evaluateResponse(byte[] response) throws SaslException {
log.trace("Evaluating SASL client response");
parseCredentials(response);
validateCredentials();
if (StringUtils.isEmpty(authorizationId)) {
authorizationId = serviceId;
}
try {
isAuthenticated = authenticator.authenticate(serviceId, password);
if (isAuthenticated) {
complete = true;
} else {
log.error("Throwing Authentication Exception for: " + serviceId);
throw new AuthenticationException(String.format("Authentication failed for [%s]",
ObjectUtils.defaultIfNull(serviceId, "")));
}
} catch (UnexpectedAuthException e) {
log.error("Unexpected authentication error", e);
throw new SaslException("Unexpected authentication error", e);
}
return new byte[0];
}
I see these error logs on the cluster
[2022-09-30 17:15:07,241] WARN Invalid credentials for [cn=SVCEVENTSANDBOXADMINIDT,ou=SVC,ou=People,o=Our:pw] (com.our.security.authentication.LdapAuthenticator)
[2022-09-30 17:15:07,242] INFO LDAP Authentication failed for [SVCEVENTSANDBOXADMINIDT:pw] (com.our.security.authentication.LdapAuthenticator)
[2022-09-30 17:15:07,242] ERROR Throwing Authentication Exception for: SVCEVENTSANDBOXADMINIDT (com.our.security.authentication.sasl.KrogerSaslServer)
[2022-09-30 17:15:07,245] INFO [SocketServer listenerType=ZK_BROKER, nodeId=2] Failed authentication with /10.35.10.184 (channelId=ip:9092-ip:51015-0) (Authentication failed during authentication due to invalid credentials with SASL mechanism PLAIN) (org.apache.kafka.common.network.Selector)
The Debug logs on the client side look like this:
2022-09-30 13:29:10.998 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.common.network.SslTransportLayer : [SslTransportLayer channelId=-2 key=sun.nio.ch.SelectionKeyImpl#40d72e4d] SSL handshake completed successfully with peerHost 'broker' peerPort 9092 peerPrincipal 'CN=CN, OU=CT, O=Our, ST=City, C=US' cipherSuite 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384'
2022-09-30 13:29:11.053 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.s.a.SaslClientAuthenticator : Set SASL client state to RECEIVE_APIVERSIONS_RESPONSE
2022-09-30 13:29:11.113 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.s.a.SaslClientAuthenticator : Set SASL client state to SEND_HANDSHAKE_REQUEST
2022-09-30 13:29:11.114 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.s.a.SaslClientAuthenticator : Set SASL client state to RECEIVE_HANDSHAKE_RESPONSE
2022-09-30 13:29:11.161 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.s.a.SaslClientAuthenticator : Set SASL client state to INITIAL
2022-09-30 13:29:11.163 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.s.a.SaslClientAuthenticator : Set SASL client state to INTERMEDIATE
2022-09-30 13:29:15.522 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Received: 0 records
2022-09-30 13:29:15.526 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Commit list: {}
2022-09-30 13:29:20.529 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Received: 0 records
2022-09-30 13:29:20.530 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Commit list: {}
2022-09-30 13:29:25.533 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.c.internals.AbstractCoordinator : [Consumer clientId=consumer-rob-test-1-2, groupId=rob-test-1] Coordinator discovery failed, refreshing metadata
2022-09-30 13:29:25.534 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Received: 0 records
2022-09-30 13:29:25.534 DEBUG 98549 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Commit list: {}
2022-09-30 13:29:25.534 DEBUG 98549 --- [ntainer#0-0-C-1] o.a.k.c.c.internals.AbstractCoordinator : [Consumer clientId=consumer-rob-test-1-2, groupId=rob-test-1] Sending FindCoordinator request to broker broker:9092 (id: -2 rack: null)
Disconnected from the target VM, address: '127.0.0.1:51006', transport: 'socket'
The metadata refresh attempts continue to happen until I shut down the app.
When we hit the older version with the same code we get this error:
2022-09-30 13:42:14.787 ERROR 99029 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Authentication/Authorization Exception and no authExceptionRetryInterval set
org.apache.kafka.common.errors.SaslAuthenticationException: Authentication failed during authentication due to invalid credentials with SASL mechanism PLAIN
2022-09-30 13:42:14.791 ERROR 99029 --- [ntainer#0-0-C-1] o.s.k.l.KafkaMessageListenerContainer : Fatal consumer exception; stopping container

Connect Timeout Exception on Url - http://localhost:8888 & Could not locate PropertySource: I/O error on GET request

When the Spring Cloud Dataflow Http-Source app Pod starts on kubernetes notice following two messages in console.
Connect Timeout Exception on Url - http://localhost:8888.
Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/http-source/default": Connection refused (Connection refused); nested exception is java.net.ConnectException
How to get this resolved?
subscriber to the 'errorChannel' channel
2019-09-15 05:17:26.773 INFO 1 --- [ main] o.s.i.channel.PublishSubscribeChannel : Channel 'application-1.errorChannel' has 1 subscriber(s).
2019-09-15 05:17:26.774 INFO 1 --- [ main] o.s.i.endpoint.EventDrivenConsumer : started _org.springframework.integration.errorLogger
2019-09-15 05:17:27.065 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
2019-09-15 05:17:27.137 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available
2019-09-15 05:17:27.141 WARN 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/http-source/default": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
If you look carefully, the following message will be logged as a WARN in the logs.
Connect Timeout Exception on Url - http://localhost:8888.
Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/http-source/default": Connection refused (Connection refused); nested exception is java.net.ConnectException
You'd see this WARN message for all the apps that we ship, SCDF, and Skipper servers that runs on K8s. This means that the apps, SCDF or Skipper don't have a config-server configured, so it defaults to the default http://localhost:8888.
Background: we provide the config-server dependency in all the apps that we ship to help you get started with it quickly.
If you don't use the config-server, that's fine; it will not cause any harm - nothing to worry, however.

Spring-Integration: int:http:inbound-channel-adapter throws 403 after spring-boot upgrade to 1.4

After Upgrading Spring-Boot from 1.3.7.RELEASE to 1.4.0.RELEASE I get the issue, when calling my rest service by inbound-channel-adapter, it throws a HttpClientErrorException.
Configuration inbound-channel-adapter:
<int-http:inbound-channel-adapter
channel="api_app_integration_request_channel"
supported-methods="PUT"
path="/process/ticket"
request-payload-type="*.model.Ticket"
header-mapper="headerMapper"
error-channel="internal-client-rest-ticket-error-channel"
>
<int-http:request-mapping consumes="application/json" />
</int-http:inbound-channel-adapter>
Restservice-Call:
private static final String URL = "http://localhost:8080/process/ticket";
public void openTicket(final Profile profile, final Ticket ticket) {
final HttpHeaders headers = new HttpHeaders();
headers.set(Profile.PROFILE, profile.toString());
final HttpEntity<Ticket> entity = new HttpEntity<Ticket>(ticket, headers);
template.exchange(URL, HttpMethod.PUT, entity, Ticket.class);
}
Exception:
org.springframework.web.client.HttpClientErrorException: 403 null
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:667)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:498)
at *.client.rest.simulator.ProblemReporter.openTicket(ProblemReporter.java:28)
at *.client.SassRestSimulatorApplication.lambda$0(SassRestSimulatorApplication.java:96)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.SliceOps$1$1.accept(SliceOps.java:204)
at java.util.stream.StreamSpliterators$InfiniteSupplyingSpliterator$OfRef.tryAdvance(StreamSpliterators.java:1356)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at *.client.SassRestSimulatorApplication.executeApplication(SassRestSimulatorApplication.java:96)
at *.client.SassRestSimulatorApplication.main(SassRestSimulatorApplication.java:47)
Debug-Output
2016-08-07 18:56:24.022 DEBUG 16288 --- [ main] o.s.web.client.RestTemplate : Created PUT request for "http://localhost:8080/process/ticket"
2016-08-07 18:56:24.180 DEBUG 16288 --- [ main] o.s.web.client.RestTemplate : Setting request Accept header to [application/json, application/*+json]
2016-08-07 18:56:24.223 DEBUG 16288 --- [ main] o.s.web.client.RestTemplate : Writing [Ticket# 1: [SIDE1-BS1-SP1] [SIDE1-BS1-SP1] [emergency] [NEW] Urgend problem. Fix immediately or revenue will be lost!] using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#18918d70]
2016-08-07 18:56:24.331 DEBUG 16288 --- [ main] o.s.web.client.RestTemplate : PUT request for "http://localhost:8080/process/ticket" resulted in 403 (null); invoking error handler
I tried int-http:inbound-gateway BUT with same result.
When accessing service directly via Postman I get an 403 - Access denied and no logging found:
I am little bit supried about access denied, I don't use any security framework.
Under Spring-Boot 1.3.7.RELEASE works fine:
Logging-Output:
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Bound request context to thread: org.apache.catalina.connector.RequestFacade#32818b2d
2016-08-07 20:03:23.098 DEBUG 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : DispatcherServlet with name 'dispatcherServlet' processing PUT request for [/process/ticket]
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#23764bec] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.w.s.handler.SimpleUrlHandlerMapping : No handler mapping found for [/process/ticket]
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#5fa0d972] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.098 DEBUG 9372 --- [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /process/ticket
2016-08-07 20:03:23.098 DEBUG 9372 --- [nio-8080-exec-4] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/process/ticket]
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.integration.http.inbound.IntegrationRequestMappingHandlerMapping#64dfb31d] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Testing handler adapter [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#35467187]
2016-08-07 20:03:23.098 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter#52466d8b]
2016-08-07 20:03:23.100 DEBUG 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2016-08-07 20:03:23.100 TRACE 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade#32818b2d
2016-08-07 20:03:23.100 DEBUG 9372 --- [nio-8080-exec-4] o.s.web.servlet.DispatcherServlet : Successfully completed request
2016-08-07 20:03:23.119 DEBUG 9372 --- [ sassExecutor-1] o.s.web.client.RestTemplate : Created PUT request for "http://localhost:8080/process/ticket"
2016-08-07 20:03:23.120 DEBUG 9372 --- [ sassExecutor-1] o.s.web.client.RestTemplate : Writing [Ticket# 666: [SIDE1-BS1-SP1] ] as "application/json" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#4d3ce1c0]
2016-08-07 20:03:23.126 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Bound request context to thread: org.apache.catalina.connector.RequestFacade#32818b2d
2016-08-07 20:03:23.127 DEBUG 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : DispatcherServlet with name 'dispatcherServlet' processing PUT request for [/process/ticket]
2016-08-07 20:03:23.128 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#23764bec] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.128 TRACE 9372 --- [nio-8080-exec-5] o.s.w.s.handler.SimpleUrlHandlerMapping : No handler mapping found for [/process/ticket]
2016-08-07 20:03:23.128 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#5fa0d972] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.128 DEBUG 9372 --- [nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /process/ticket
2016-08-07 20:03:23.129 DEBUG 9372 --- [nio-8080-exec-5] s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/process/ticket]
2016-08-07 20:03:23.129 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Testing handler map [org.springframework.integration.http.inbound.IntegrationRequestMappingHandlerMapping#64dfb31d] in DispatcherServlet with name 'dispatcherServlet'
2016-08-07 20:03:23.129 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Testing handler adapter [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#35467187]
2016-08-07 20:03:23.129 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter#52466d8b]
2016-08-07 20:03:23.130 DEBUG 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2016-08-07 20:03:23.130 TRACE 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade#32818b2d
2016-08-07 20:03:23.130 DEBUG 9372 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet : Successfully completed request
2016-08-07 20:03:23.134 DEBUG 9372 --- [ sassExecutor-1] o.s.web.client.RestTemplate : PUT request for "http://localhost:8080/process/ticket" resulted in 200 (OK)
Ticket# 666: [SIDE1-BS1-SP1] [SIDE1-BS1-SP1] [low] [DECRYPTED] Ich bin von Postman gesendet worden
====== EDIT =======
Under Spring Boot 1.4.0 I get following Debug-Informations when calling the rest service:
2016-08-08 19:21:35.382 DEBUG 8268 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Received [PUT /process/ticket HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 206
Cache-Control: no-cache
Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
profile: 192.168.56.102:10000
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
{"ticketId":666,"issueDateTime":"2016-06-27","description":"Ich bin von Postman gesendet worden","sender":"SIDE1-BS1-SP1","receiver":"SIDE1-BS1-SP1","priority":"low","secured":"NEW","mimeType":"text/plain"}]
2016-08-08 19:21:35.383 DEBUG 8268 --- [nio-8080-exec-2] o.a.c.authenticator.AuthenticatorBase : Security checking request PUT /process/ticket
2016-08-08 19:21:35.383 DEBUG 8268 --- [nio-8080-exec-2] org.apache.catalina.realm.RealmBase : No applicable constraints defined
2016-08-08 19:21:35.383 DEBUG 8268 --- [nio-8080-exec-2] o.a.c.authenticator.AuthenticatorBase : Not subject to any constraint
2016-08-08 19:21:35.383 DEBUG 8268 --- [nio-8080-exec-2] o.apache.catalina.core.StandardWrapper : Returning non-STM instance
2016-08-08 19:21:35.384 DEBUG 8268 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper#16ab5cb1:org.apache.tomcat.util.net.NioChannel#5a719bf2:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:57863]], Status in: [OPEN_READ], State out: [OPEN]
Spring-Boot-Starter:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-http</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
====
Example-Application:
Under Spring-Boot 1.3.7 Works, 1.4.0 Error like described.
Dropboxlink: link
Well, since you have a Spring Boot there it really looks like the spring-security in classpath causes a Security auto-configuration (SecurityAutoConfiguration).
Try to switch on --debug option when you start the application and look into auto-configuration for the "security" word.
OTOH you showed the first logs for Tomcat, but they say nothing about the further process with DispatcherServlet.
Can we see those logs?
UPDATE
Thank you for sample application. Unfortunately that works for me:
:: Spring Boot :: (v1.4.0.RELEASE)
2016-08-11 11:35:36.762 INFO 8636 --- [ main] com.example.RestSimulatorApplication : Starting RestSimulatorApplication on HOME with PID 8636 (D:\SpringIO\Spring140IntegrationTest\target\classes started by abilan in D:\SpringIO\Spring140IntegrationTest)
...
'dispatcherServlet': initialization started
2016-08-11 11:35:39.694 INFO 8636 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 11 ms
Ticket# 1: [emergency] [NEW] Urgend problem. Fix immediately or revenue will be lost!
Ticket# 2: [medium] [NEW] There is an issue; take a look whenever you have time.
Ticket# 3: [emergency] [NEW] Urgend problem. Fix immediately or revenue will be lost!
Ticket# 4: [medium] [NEW] There is an issue; take a look whenever you have time.
I tried it on Windows and Mac with the same good results.
Maybe you have some Fire Wall on your machine with the rule do not allow requests with some header or something else?..