Yeah, I am sorry to misuse this thread :-) It just came to my mind when
Haim mentioned, that exception is not thrown in his code, even if
creation of client model obviously failed.
Marek
On 30/05/16 20:24, Stian Thorgersen wrote:
+1 Not the correct thread for it though ;)
On 30 May 2016 at 11:57, Marek Posolda <mposolda(a)redhat.com
<mailto:mposolda@redhat.com>> wrote:
Maybe someone already mentions it before. IMO the returning
"Response" from the create methods on admin client is one of the
biggest limitation of current admin-client. For example if we
change ClientResources method:
@POST @Consumes(MediaType.APPLICATION_JSON)
public Response create(ClientRepresentation clientRepresentation);
to something like:
@POST @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public ClientRepresentation create(ClientRepresentation clientRepresentation);
then the advantages will be:
- You won't need to parse the ID of newly created client from the
URI location and call additional GET request to retrieve newly
created client (You usually want newly created client when you are
creating it)
- In case the error happened, the exception will be thrown on
client-side too. With the "Response" object, the exception is not
thrown on client-side but you are supposed to manually check the
status code. This may be confusing for users, who are not so
familiar with the admin client. When exception is thrown on
client-side, it's crystal clear that something bad happened and
client wasn't successfully created on server side.
Are there any disadvantages? The only one I see is, that POST
responses from server will need to return the representation of
created object, but that's maybe rather advantage (as you don't
need to call additional GET request, which in 95% of cases you need).
Marek
On 30/05/16 08:04, Stian Thorgersen wrote:
> What's the status code for the response? It should be 409.
>
> On 27 May 2016 at 09:02, Haim Vana <haimv(a)perfectomobile.com
> <mailto:haimv@perfectomobile.com>> wrote:
>
> There is an exception in the server log, but it is not
> thrown, so I am not getting it in my code.
>
>
>
> -------- Original message --------
> From: Stian Thorgersen <sthorger(a)redhat.com
> <mailto:sthorger@redhat.com>>
> Date: 5/27/16 09:24 (GMT+02:00)
> To: Haim Vana <haimv(a)perfectomobile.com
> <mailto:haimv@perfectomobile.com>>
> Cc: Marek Posolda <mposolda(a)redhat.com
> <mailto:mposolda@redhat.com>>, keycloak-user(a)lists.jboss.org
> <mailto:keycloak-user@lists.jboss.org>
> Subject: Re: [keycloak-user] How to create the same client
> (same id) for multiple realms programmatically
>
> Do you not get a error when trying to create it the second
> time with the same id? If not please create a jira.
>
> On 26 May 2016 at 20:20, Haim Vana <haimv(a)perfectomobile.com
> <mailto:haimv@perfectomobile.com>> wrote:
>
> Thanks for your reply.
>
> My problem was that I have used setId instead of setClientId.
>
> *From:*Marek Posolda [mailto:mposolda@redhat.com
> <mailto:mposolda@redhat.com>]
> *Sent:* Thursday, May 26, 2016 4:16 PM
> *To:* Haim Vana <haimv(a)perfectomobile.com
> <mailto:haimv@perfectomobile.com>>;
> keycloak-user(a)lists.jboss.org
> <mailto:keycloak-user@lists.jboss.org>
> *Subject:* Re: [keycloak-user] How to create the same
> client (same id) for multiple realms programmatically
>
> You can use for example:
>
> RealmResource realm1 =
*adminClient*.realms().realm(*"realm1"*);
>
> RealmResource realm2 =
*adminClient*.realms().realm(*"realm2"*);
>
> realm1.clients().create(clientRepresentation);
>
> realm2.clients().create(clientRepresentation);
>
>
> For update you can take a look at some of our tests,
> which are updating client. For example this one :
>
https://github.com/mposolda/keycloak/blob/master/testsuite/integration-ar...
>
> Note that you need to know client Id (this is different
> thant clientId). The easiest is to set it manually in
> representation before you create client (via client.setId
> ) like it's done in this test.
>
> Marek
>
> On 26/05/16 14:54, Haim Vana wrote:
>
> Any idea regarding the below ?
>
> As a workaround how can I update existing client
> programmatically ? I couldn't find it in the admin API.
>
> Thanks again,
>
> Haim.
>
> *From:*Haim Vana
> *Sent:* Thursday, May 26, 2016 2:17 PM
> *To:* keycloak-user(a)lists.jboss.org
> <mailto:keycloak-user@lists.jboss.org>
> *Subject:* How to create the same client (same id)
> for multiple realms programmatically
>
> Hi,
>
> I am trying to create the same client for many
> realms, however it creates it only once, probably
> because they have the same id, however in UI I am
> able to create it.
>
> Any idea how I can create the same client for
> different realms programmatically with the same id ?
>
> This is my code sample:
>
> ClientRepresentation clientRepresentation = *new
*ClientRepresentation();
>
> clientRepresentation.setId(clientId); // Same
> clientId for all reamls
>
> realm.clients().create(clientRepresentation); //
> Client is created only for first realm
>
> Any advice will be appreciated,
>
> Haim.
>
> The information contained in this message is
> proprietary to the sender, protected from disclosure,
> and may be privileged. The information is intended to
> be conveyed only to the designated recipient(s) of
> the message. If the reader of this message is not the
> intended recipient, you are hereby notified that any
> dissemination, use, distribution or copying of this
> communication is strictly prohibited and may be
> unlawful. If you have received this communication in
> error, please notify us immediately by replying to
> the message and deleting it from your computer. Thank
> you.
>
>
> _______________________________________________
>
> keycloak-user mailing list
>
> keycloak-user(a)lists.jboss.org
> <mailto:keycloak-user@lists.jboss.org>
>
>
https://lists.jboss.org/mailman/listinfo/keycloak-user
>
> The information contained in this message is proprietary
> to the sender, protected from disclosure, and may be
> privileged. The information is intended to be conveyed
> only to the designated recipient(s) of the message. If
> the reader of this message is not the intended recipient,
> you are hereby notified that any dissemination, use,
> distribution or copying of this communication is strictly
> prohibited and may be unlawful. If you have received this
> communication in error, please notify us immediately by
> replying to the message and deleting it from your
> computer. Thank you.
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user(a)lists.jboss.org
> <mailto:keycloak-user@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/keycloak-user
>
>
> The information contained in this message is proprietary to
> the sender, protected from disclosure, and may be privileged.
> The information is intended to be conveyed only to the
> designated recipient(s) of the message. If the reader of this
> message is not the intended recipient, you are hereby
> notified that any dissemination, use, distribution or copying
> of this communication is strictly prohibited and may be
> unlawful. If you have received this communication in error,
> please notify us immediately by replying to the message and
> deleting it from your computer. Thank you.
>
>