[ 
https://issues.apache.org/jira/browse/CAMEL-10795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15877824#comment-15877824
 ] 

Roland Huss commented on CAMEL-10795:
-------------------------------------

[~davsclaus] aggreed to no overengineer (but leave some empty which could be 
filled by extending, not changing. even when these spots never will be 
'filled').

For the username / password thing we would report both back both parameters as 
be the source of the problem (when getting back a 401 from the backend which 
also not tell us which of those parameters is wrong). I don't see a security 
problem here (actually thats why I opt for multiple parameter keys per error to 
avoid this). (in this example: description == "Wrong credentials", parameters 
== [ "user", "password" ] if this connector use these fields for 
authentication).

This method is also used for plain validation, so not only connection checking 
(that's why I'd like to call 'verifier' imply both validation + checking). 

When we allow for multiple parameter keys to be returned in errors we also help 
in reporting back complex validation logic errors (like "authtoken" _or_ "user" 
/ "password" needs to be provided).


> PingCheck API
> -------------
>
>                 Key: CAMEL-10795
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10795
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Assignee: Luca Burgazzoli
>             Fix For: 2.19.0
>
>
> Related to CAMEL-10026 about Health Check API
> We need some way for Camel components to be able to more easily validate if 
> they can connect to their remote system.
> And for that the user must configure the Camel component/endpoint accordingly 
> with details such as username/password/tokens/ other beans etc.
> How this is done varies from Camel component to component, but most of them 
> uses endpoint options.
> So we may want to introduce some interface (whether the name Pingable is a 
> good name is up for discussion)
> {code}
> interface Pingable {
>     PingResult ping(Map<String, String> config);
>     boolean canPing(Map<String, String> config);
> }
> class PingResult {
>  private boolean isSuccess();
>  private String errorMessage();
> }
> {code}
> This API is just a little suggestion.
> The parameters should ideally be type less, eg Map<String, String> as the 
> user configures this in endpoint uris, XML DSL etc. and therefore we should 
> be able to do this without having to use Java code per see.
> Also we may want to have canPing as a method to check if the component can 
> accept the ping or not. In some cases it may not be able to do the ping.
> For example camel-http component would just require the following information 
> in the Map<String, String>
> httpUri=http://myserver/foo/bar
> Where httpUri is the name of the option accordingly to the table at
> https://github.com/apache/camel/blob/master/components/camel-http/src/main/docs/http-component.adoc
> And then it depends on each Camel component how they do the ping check, the 
> http component may do a HTTP HEAD or a HTTP GET etc and check the HTTP 
> response code etc.
> Notice this is not intended entirely for runtime health check, but for 
> validating/testing Camel components can work with the user given 
> configuration to connect to the remote system.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to