+1 Not the correct thread for it though ;)
On 30 May 2016 at 11:57, Marek Posolda <mposolda(a)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(a)Consumes(MediaType.APPLICATION_JSON)public Response create(ClientRepresentation
clientRepresentation);
to something like:
@POST@Consumes(MediaType.APPLICATION_JSON)(a)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> 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@redhat.com>sthorger(a)redhat.com>
> Date: 5/27/16 09:24 (GMT+02:00)
> To: Haim Vana <haimv(a)perfectomobile.com>
> Cc: Marek Posolda <mposolda(a)redhat.com>, keycloak-user(a)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>
> haimv(a)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>mposolda(a)redhat.com]
>>
>> *Sent:* Thursday, May 26, 2016 4:16 PM
>> *To:* Haim Vana <
<haimv@perfectomobile.com>haimv(a)perfectomobile.com>;
>> keycloak-user(a)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@lists.jboss.org>keycloak-user(a)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
>>
>>
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
>>
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.
>