Edit form bugs progress
This commit is contained in:
parent
8b19ce815f
commit
52f6ab3ac4
|
@ -108,7 +108,9 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
}
|
||||
|
||||
private void updateFormFields(HttpServletRequest request, String serviceName, String description, String keyType, ServiceResponse serviceResponse) {
|
||||
if (serviceName ==null || serviceName.trim().isEmpty()) {
|
||||
|
||||
System.out.println("UPDATING FORM");
|
||||
if (serviceName == null || serviceName.trim().isEmpty()) {
|
||||
request.getSession().setAttribute("first_name", serviceResponse.getClientName());
|
||||
}
|
||||
|
||||
|
@ -138,6 +140,7 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
OIDCAuthenticationToken authentication = (OIDCAuthenticationToken) SecurityContextHolder.
|
||||
getContext().getAuthentication();
|
||||
|
||||
response.setContentType("text/html");
|
||||
boolean canProceed = true;
|
||||
|
||||
String mode = request.getParameter("mode").trim();
|
||||
|
@ -145,7 +148,14 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
checkmode(mode);
|
||||
System.out.println("Mode is " + mode);
|
||||
|
||||
String serviceId = request.getParameter("id");
|
||||
|
||||
String name = request.getParameter("first_name").trim();
|
||||
if (name == null || name.isEmpty()) {
|
||||
request.getSession().setAttribute("first_name_error", true);
|
||||
canProceed = false;
|
||||
}
|
||||
|
||||
String description = request.getParameter("description").trim();
|
||||
String keyType = request.getParameter("key_radio").trim();
|
||||
String jwksUri = null;
|
||||
|
@ -154,6 +164,8 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
|
||||
if (keyType.equals("uri")) {
|
||||
jwksUri = request.getParameter("uri");
|
||||
request.getSession().setAttribute("jwksUri", jwksUri);
|
||||
|
||||
String[] schemes = {"https"};
|
||||
UrlValidator urlValidator = new UrlValidator(schemes);
|
||||
if (!urlValidator.isValid(jwksUri)){
|
||||
|
@ -166,37 +178,46 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
Gson gson = new GsonBuilder().registerTypeAdapter(Jwks.class, new JwksDeserializer()).create();
|
||||
String jwksSet = String.format("{\"keys\":[%s]}", jwksString);
|
||||
jwks = gson.fromJson(jwksSet, Jwks.class);
|
||||
request.getSession().setAttribute("value", jwksString);
|
||||
|
||||
if (jwks.getKeys() == null || jwks.getKeys().length == 0) {
|
||||
System.out.println("Something wrong with the keys.");
|
||||
request.getSession().setAttribute("value_error", true);
|
||||
canProceed = false;
|
||||
}
|
||||
|
||||
|
||||
} catch (JsonParseException jpe) {
|
||||
request.getSession().setAttribute("value_error", true);
|
||||
canProceed = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String userid = authentication.getSub();
|
||||
String email = authentication.getUserInfo().getEmail();
|
||||
|
||||
String accessToken = authentication.getAccessTokenValue();
|
||||
|
||||
String serverRequestJSON;
|
||||
if (keyType.equals("uri")){
|
||||
serverRequestJSON = createServiceJson(name, description, email, jwksUri);
|
||||
} else {
|
||||
serverRequestJSON = createServiceJson(name, description, email, jwks);
|
||||
}
|
||||
|
||||
System.out.println("SERVER JSON " + serverRequestJSON);
|
||||
|
||||
ServiceResponse serviceResponse = null;
|
||||
|
||||
if (nameIsValid(name) && userInfoIsValid(userid, email) && keyIsValid(keyType, jwksUri, jwksString) && canProceed) {
|
||||
String serverRequestJSON;
|
||||
|
||||
String serverMessage;
|
||||
|
||||
if(mode.equals("create")) {
|
||||
System.out.println("In create...");
|
||||
//Careful! Redirects in method
|
||||
checkNumberOfRegisteredServices(request, response, authentication);
|
||||
|
||||
if (keyType.equals("uri")){
|
||||
serverRequestJSON = createServiceJson(name, description, email, jwksUri);
|
||||
} else {
|
||||
serverRequestJSON = createServiceJson(name, description, email, jwks);
|
||||
}
|
||||
|
||||
serverMessage = tokenUtils.registerService(serverRequestJSON, accessToken);
|
||||
|
||||
|
@ -222,8 +243,7 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
} else {
|
||||
String serviceId = request.getParameter("id");
|
||||
int serviceIdInt = 0;
|
||||
int serviceIdInt = 0;
|
||||
|
||||
if (serviceId == null || serviceId.isEmpty()) { //TODO WRONG MESSAGE
|
||||
request.getSession().setAttribute("message", "Service with id " + serviceId + " does not exist.");
|
||||
|
@ -243,20 +263,13 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
|
||||
if (registeredService != null && registeredService.getAai_id() != null) {
|
||||
serviceResponse = tokenUtils.getRegisteredService(registeredService.getAai_id(), accessToken);
|
||||
|
||||
request.getSession().setAttribute("serviceId", serviceResponse.getId());
|
||||
System.out.println("service client name " + serviceResponse.getClientName());
|
||||
request.getSession().setAttribute("first_name", serviceResponse.getClientName());
|
||||
System.out.println("service client description " + serviceResponse.getClientDescription());
|
||||
request.getSession().setAttribute("description", serviceResponse.getClientDescription());
|
||||
|
||||
HttpResponse resp = tokenUtils.updateService(serviceId, authentication.getSub(), name, description, authentication.getUserInfo().getEmail(), accessToken);
|
||||
HttpResponse resp = tokenUtils.updateService(registeredService.getAai_id(), serverRequestJSON, accessToken);
|
||||
|
||||
if (resp.getStatusLine().getStatusCode()==200) {
|
||||
|
||||
registeredService = new RegisteredService();
|
||||
System.out.println("NAME >>>>" + name);
|
||||
registeredService.setName(name);
|
||||
registeredService.setAai_id(serviceId);
|
||||
|
||||
System.out.println("AAI ID " + registeredService.getAai_id());
|
||||
try {
|
||||
registeredServicesUtils.getRegisteredServiceDao().update(registeredService);
|
||||
} catch (SQLException sqle) {
|
||||
|
@ -297,7 +310,13 @@ public class RegisterServiceServlet extends HttpServlet {
|
|||
request.getSession().setAttribute("uri", jwksUri);
|
||||
request.getSession().setAttribute("value", jwksString);
|
||||
|
||||
response.sendRedirect("./registeredServices");
|
||||
if ( serviceId != null && !serviceId.isEmpty()) {
|
||||
request.getRequestDispatcher("./registerService.jsp?id="+serviceId).forward(request, response);
|
||||
|
||||
} else {
|
||||
request.getRequestDispatcher("./registerService.jsp").include(request, response);
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,21 +48,16 @@ public class TokenUtils {
|
|||
return null;
|
||||
}
|
||||
|
||||
public HttpResponse updateService(String serviceId, String userId, String name, String description, String email, String accessToken) throws IOException {
|
||||
System.out.println("Updated name " + name);
|
||||
System.out.println("Updated description " + description);
|
||||
//TODO FIX THIS!!!
|
||||
//String json = createServiceJson(name, description);
|
||||
String json ="";
|
||||
public HttpResponse updateService(String serviceId, String serviceSON, String accessToken) throws IOException {
|
||||
|
||||
HttpPut httpPut = new HttpPut(issuer + "/api/clients/"+serviceId);
|
||||
httpPut.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
|
||||
httpPut.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);
|
||||
StringEntity params = new StringEntity(json.toString());
|
||||
httpPut.setEntity(params);
|
||||
HttpPut httpPut = new HttpPut(issuer + "/api/clients/"+serviceId);
|
||||
httpPut.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
|
||||
httpPut.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);
|
||||
StringEntity params = new StringEntity(serviceSON.toString());
|
||||
httpPut.setEntity(params);
|
||||
|
||||
CloseableHttpClient httpclient = HttpClients.createDefault();
|
||||
return httpclient.execute(httpPut);
|
||||
CloseableHttpClient httpclient = HttpClients.createDefault();
|
||||
return httpclient.execute(httpPut);
|
||||
}
|
||||
|
||||
public HttpResponse deleteService(String serviceId, String accessToken) throws IOException {
|
||||
|
|
|
@ -73,16 +73,23 @@
|
|||
<div class="uk-margin-medium-top">
|
||||
<label class="uk-form-label uk-text-bold" for="first_name">Name*</label>
|
||||
<input id="first_name" name="first_name" type="text" placeholder="Name (*)"
|
||||
class="uk-input" onkeyup="validate()" onfocusout="nameTouched = true;validate()" value="${first_name}">
|
||||
class="uk-input ${first_name_error == true?'uk-form-danger':''}" onkeyup="validate()" onfocusout="nameTouched = true;validate()" value="${first_name}">
|
||||
<c:choose>
|
||||
<c:when test="${first_name_error == true}">
|
||||
<div id="first_name_error" class="uk-text-danger uk-text-small">Please enter a name for your service.
|
||||
</div>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div id="first_name_error" style="display:none;" class="uk-text-danger uk-text-small">Please enter a name for your service.</div>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<c:remove var="first_name" scope="session"/>
|
||||
<div id="first_name_error" style="display:none;" class="uk-text-danger uk-text-small">Please enter a name for your
|
||||
service.
|
||||
</div>
|
||||
<c:remove var="first_name_error" scope="session"/>
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<label class="uk-form-label uk-text-bold" for="description">Description</label>
|
||||
<textarea id="description" name="description" type="textarea" placeholder="Description:"
|
||||
class="uk-textarea" rows="3" value="${description}"></textarea>
|
||||
class="uk-textarea" rows="3">${description}</textarea>
|
||||
<c:remove var="description" scope="session"/>
|
||||
</div>
|
||||
<h4 class="uk-text-bold uk-text-center">Access</h4>
|
||||
|
@ -105,7 +112,7 @@
|
|||
<input disabled value="RSASSA using SHA-256 hash algorithm" class="uk-input">
|
||||
</div>
|
||||
<div class="uk-margin-medium-top">
|
||||
<label class="uk-form-label uk-text-bold">Public Key Set</label>
|
||||
<label class="uk-form-label uk-text-bold">Public Key</label>
|
||||
<span class="uk-float-right">
|
||||
<span class="uk-margin-small-right">
|
||||
<input id="by_value" class="uk-radio uk-margin-small-right" type="radio"
|
||||
|
@ -128,7 +135,8 @@
|
|||
class="uk-textarea ${value_error == true?'uk-form-danger':''}" rows="10">${value}</textarea>
|
||||
<c:choose>
|
||||
<c:when test="${value_error == true}">
|
||||
<div id="value_error" class="uk-text-danger uk-text-small">Please provide a valid JSON.</div>
|
||||
<div id="value_error" class="uk-text-danger uk-text-small">Please provide a valid JSON. The format should be
|
||||
{"kty": ..., "e": ... , "use": ... , "kid": ..., "alg": ... , "n": ...} </div>
|
||||
<c:remove var="value_error" scope="session"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
|
@ -216,7 +224,7 @@
|
|||
function validate() {
|
||||
var isValid = true;
|
||||
var create = $('#create');
|
||||
create.prop('disabled', true);
|
||||
//create.prop('disabled', true);
|
||||
var name = $("#first_name");
|
||||
if (name.val() !== undefined) {
|
||||
if ($.trim(name.val()).length <= 0) {
|
||||
|
@ -262,7 +270,7 @@
|
|||
}
|
||||
}
|
||||
if (isValid) {
|
||||
create.prop('disabled', false);
|
||||
//create.prop('disabled', false);
|
||||
}
|
||||
return isValid;
|
||||
}
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
<p><span class="uk-text-primary">Authentication Method</span> Asymmetrically-signed JWT assertion</p>
|
||||
<p><span class="uk-text-primary">Token Endpoint Authentication Signing Algorithm</span> RSASSA using
|
||||
SHA-256 hash algorithm</p>
|
||||
<p><span class="uk-text-primary">Public Key Set</span>
|
||||
<p><span class="uk-text-primary">Public Key</span>
|
||||
<pre><code>${keys[key]}</code></pre>
|
||||
</p>
|
||||
<p><span class="uk-text-primary">Creation Date:</span>
|
||||
|
|
Loading…
Reference in New Issue