Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add SecurityDomainService to Job v2 APIs #4805

Merged
merged 2 commits into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Copyright Red Hat, Inc.
//
// SPDX-License-Identifier: GPL-2.0-or-later
//
package org.dogtagpki.server.ca.rest.v2;

import javax.servlet.annotation.WebServlet;

import org.dogtagpki.server.rest.v2.SecurityDomainServlet;
/**
* @author Marco Fargetta {@literal <[email protected]>}
*/
@WebServlet(
name = "caSecurityDomain",
urlPatterns = "/v2/securityDomain/*")
public class CASecurityDomainServlet extends SecurityDomainServlet {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.ca.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainACL;

@WebFilter(servletNames = "caSecurityDomain")
public class CASecurityDomainACL extends SecurityDomainACL {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.ca.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainAuthMethod;

@WebFilter(servletNames = "caSecurityDomain")
public class CASecurityDomainAuthMethod extends SecurityDomainAuthMethod {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Copyright Red Hat, Inc.
//
// SPDX-License-Identifier: GPL-2.0-or-later
//
package org.dogtagpki.server.kra.rest.v2;

import javax.servlet.annotation.WebServlet;

import org.dogtagpki.server.rest.v2.SecurityDomainServlet;
/**
* @author Marco Fargetta {@literal <[email protected]>}
*/
@WebServlet(
name = "kraSecurityDomain",
urlPatterns = "/v2/securityDomain/*")
public class KRASecurityDomainServlet extends SecurityDomainServlet {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.kra.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainACL;

@WebFilter(servletNames = "kraSecurityDomain")
public class KRASecurityDomainACL extends SecurityDomainACL {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.kra.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainAuthMethod;

@WebFilter(servletNames = "kraSecurityDomain")
public class KRASecurityDomainAuthMethod extends SecurityDomainAuthMethod {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Copyright Red Hat, Inc.
//
// SPDX-License-Identifier: GPL-2.0-or-later
//
package org.dogtagpki.server.ocsp.rest.v2;

import javax.servlet.annotation.WebServlet;

import org.dogtagpki.server.rest.v2.SecurityDomainServlet;
/**
* @author Marco Fargetta {@literal <[email protected]>}
*/
@WebServlet(
name = "ocspSecurityDomain",
urlPatterns = "/v2/securityDomain/*")
public class OCSPSecurityDomainServlet extends SecurityDomainServlet {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.ocsp.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainACL;

@WebFilter(servletNames = "ocspSecurityDomain")
public class OCSPSecurityDomainACL extends SecurityDomainACL {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.dogtagpki.server.ocsp.rest.v2.filters;

import javax.servlet.annotation.WebFilter;

import org.dogtagpki.server.rest.v2.filters.SecurityDomainAuthMethod;

@WebFilter(servletNames = "ocspSecurityDomain")
public class OCSPSecurityDomainAuthMethod extends SecurityDomainAuthMethod {
private static final long serialVersionUID = 1L;
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public class AuditServletBase {

public AuditServletBase(CMSEngine engine, String username) {
this.engine = engine;
this.userName = username;
}
Comment on lines 48 to 51
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not a concern now, but this means for each request we need to create a new AuditServletBase instance (which is what the current code does):

auditServlet = new AuditServletBase(getEngine(), request.getUserPrincipal().getName());
auditConfigNew = auditServlet.updateAuditConfig(auditConfig);

If there is a lot of requests it might be more efficient to reuse the existing instance:

init() {
    auditServlet = new AuditServletBase(getEngine());
}
updateAuditConfig() {
    auditConfigNew = auditServlet.updateAuditConfig(request.getUserPrincipal().getName(), auditConfig);
}

Just something to consider for future improvement.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I have follow this approach in all the services because the initial design, without annotation, was differently organised. I think there is room for this optimisation in several services but not all since in same cases the initialisation requires information provided by the request (e.g. SecurityDomainServletBase require the locale) and need additional work.
I'll do this optimisation in separate PR.


public AuditConfig createAuditConfig() throws EBaseException{
Expand Down
Loading
Loading