Skip to content

Commit

Permalink
First attempt at deleting certificates
Browse files Browse the repository at this point in the history
  • Loading branch information
hazendaz committed Sep 26, 2023
1 parent a841c06 commit b398c9b
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/**
* Licensed under the GPL License. You may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE.
*/
package psiprobe.controllers.certificates;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.ParameterizableViewController;
import org.springframework.web.servlet.view.RedirectView;

import java.security.KeyStore;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* The Class DeleteCertificateController.
*/
@Controller
public class DeleteCertificateController extends ParameterizableViewController {

/** The replace pattern. */
private String replacePattern;

/**
* Gets the replace pattern.
*
* @return the replace pattern
*/
public String getReplacePattern() {
return this.replacePattern;
}

/**
* Sets the replace pattern.
*
* @param replacePattern the new replace pattern
*/
@Value("^http(s)?://[a-zA-Z\\-\\.0-9]+(:[0-9]+)?")
public void setReplacePattern(String replacePattern) {
this.replacePattern = replacePattern;
}

@RequestMapping(path = "/adm/deleteCert.htm")
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return super.handleRequest(request, response);
}

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {

String aliasName = ServletRequestUtils.getStringParameter(request, "alias", null);

// Remove alias here...
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.deleteEntry(aliasName);

String referer = request.getHeader("Referer");
String redirectUrl;
if (referer != null) {
redirectUrl = referer.replaceAll(this.replacePattern, "");
} else {
redirectUrl = request.getContextPath() + getViewName();
}
return new ModelAndView(new RedirectView(redirectUrl));
}

@Value("redirect:/certificates.htm")
@Override
public void setViewName(String viewName) {
super.setViewName(viewName);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,13 @@
</display:column>

<display:column title="&#160;">
<c:set var="confirmMessage">
<spring:message code="probe.jsp.certificates.delete.confirm" arguments="${cert.alias}"/>
</c:set>
<a class="imglink" onclick="return confirm('${confirmMessage}')" href="<c:url value='/adm/deleteCert.htm'>
<c:param name='alias' value='${cert.alias}'/></c:url>">
<img border="0" src="${pageContext.request.contextPath}<spring:theme code='magnifier.png'/>" title="<spring:message code='probe.jsp.certificates.viewCertDetails'/>">
</a>
</display:column>

</display:table>
1 change: 1 addition & 0 deletions psi-probe-web/src/main/webapp/WEB-INF/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ probe.jsp.certificates.col.notAfter=Not After
probe.jsp.certificates.viewCertDetails=View details [not implemented yet]
probe.jsp.certificates.keyStore=Key Store
probe.jsp.certificates.trustStore=Trust Store
probe.jsp.certificates.delete.confirm=Are you sure you want to delete {0} certificate?

probe.jsp.cluster.chart.requests=Requests in {0}-second intervals
probe.jsp.cluster.chart.traffic=Traffic in {0}-second intervals
Expand Down

0 comments on commit b398c9b

Please sign in to comment.