#2479 Proper message when "Manual server certificate enrollment" is used without cert request field
Closed: migrated by dmoluguw. Opened by gkapoor.

Proper message when "Manual server certificate enrollment" is used without cert
request field is used

Steps to Reproduce:

Just provide an empty certificate request field

Actual results:

got a big stack as mentioned in additional info

Expected results:

A user friendly exception would be great to have

Additional info:

debug logs :
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: EnrollmentProcessor: profileId
caServerCert
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: EnrollmentProcessor: set Inputs
into profile Context
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: EnrollmentProcessor: set
sslClientCertProvider
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: EnrollProfile: Start
parseCRMF():
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: EnrollProfile: Unable to parse
CRMF request: org.mozilla.jss.asn1.InvalidBERException: SEQUENCE(item #0) >>
End-of-file reached while decoding ASN.1 header
org.mozilla.jss.asn1.InvalidBERException: SEQUENCE(item #0) >> End-of-file
reached while decoding ASN.1 header
        at org.mozilla.jss.asn1.ASN1Header.<init>(ASN1Header.java:132)
        at org.mozilla.jss.asn1.SEQUENCE$Template.decode(SEQUENCE.java:344)
        at org.mozilla.jss.asn1.SEQUENCE$Template.decode(SEQUENCE.java:331)
        at org.mozilla.jss.asn1.SEQUENCE$OF_Template.decode(SEQUENCE.java:596)
        at
com.netscape.cms.profile.common.EnrollProfile.parseCRMF(EnrollProfile.java:818)
        at com.netscape.cms.profile.common.EnrollProfile.createRequests(EnrollP
rofile.java:156)
        at com.netscape.cms.servlet.cert.EnrollmentProcessor.processEnrollment(
EnrollmentProcessor.java:180)
        at com.netscape.cms.servlet.cert.EnrollmentProcessor.processEnrollment(
EnrollmentProcessor.java:96)
        at com.netscape.cms.servlet.profile.ProfileSubmitServlet.processEnrollm
ent(ProfileSubmitServlet.java:243)
        at com.netscape.cms.servlet.profile.ProfileSubmitServlet.process(Profil
eSubmitServlet.java:128)
        at
com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:515)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
ssorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:175)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
licationFilterChain.java:297)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(Applicati
onFilterChain.java:55)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
FilterChain.java:186)
        at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
ssorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
licationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(Applicati
onFilterChain.java:55)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
FilterChain.java:186)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapper
Valve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContext
Valve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentic
atorBase.java:505)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVa
lve.java:116)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHtt
p11Processor.java:1078)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
(AbstractProtocol.java:625)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoi
nt.java:318)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskT
hread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Invalid Request
        at
com.netscape.cms.profile.common.EnrollProfile.parseCRMF(EnrollProfile.java:832)
        at com.netscape.cms.profile.common.EnrollProfile.createRequests(EnrollP
rofile.java:156)
        at com.netscape.cms.servlet.cert.EnrollmentProcessor.processEnrollment(
EnrollmentProcessor.java:180)
        at com.netscape.cms.servlet.cert.EnrollmentProcessor.processEnrollment(
EnrollmentProcessor.java:96)
        at com.netscape.cms.servlet.profile.ProfileSubmitServlet.processEnrollm
ent(ProfileSubmitServlet.java:243)
        at com.netscape.cms.servlet.profile.ProfileSubmitServlet.process(Profil
eSubmitServlet.java:128)
        at
com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:515)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
ssorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:175)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
licationFilterChain.java:297)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(Applicati
onFilterChain.java:55)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
FilterChain.java:186)
        at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce
ssorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:288)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:285)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:320)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
licationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(Applicati
onFilterChain.java:55)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:191)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFil
terChain.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
FilterChain.java:186)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapper
Valve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContext
Valve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentic
atorBase.java:505)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVa
lve.java:116)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHtt
p11Processor.java:1078)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
(AbstractProtocol.java:625)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoi
nt.java:318)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskT
hread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.mozilla.jss.asn1.InvalidBERException: SEQUENCE(item #0) >>
End-of-file reached while decoding ASN.1 header
        at org.mozilla.jss.asn1.ASN1Header.<init>(ASN1Header.java:132)
        at org.mozilla.jss.asn1.SEQUENCE$Template.decode(SEQUENCE.java:344)
        at org.mozilla.jss.asn1.SEQUENCE$Template.decode(SEQUENCE.java:331)
        at org.mozilla.jss.asn1.SEQUENCE$OF_Template.decode(SEQUENCE.java:596)
        at
com.netscape.cms.profile.common.EnrollProfile.parseCRMF(EnrollProfile.java:818)
        ... 53 more
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: ProfileSubmitServlet: error in
processing request: Invalid Request
[21/Sep/2016:01:04:01][http-bio-20443-exec-21]: CMSServlet: curDate=Wed Sep 21
01:04:01 IST 2016 id=caProfileSubmit time=44

Metadata Update from @gkapoor:
- Issue set to the milestone: UNTRIAGED

Metadata Update from @mharmsen:
- Custom field feature adjusted to None
- Custom field lowhangingfruit adjusted to vakwetu: X
- Custom field proposedmilestone adjusted to None
- Custom field proposedpriority adjusted to None
- Custom field reviewer adjusted to None
- Custom field version adjusted to None
- Issue close_status updated to: None
- Issue priority set to: minor (was: major)
- Issue set to the milestone: FUTURE (was: UNTRIAGED)

Per 10.5.x/10.6 Triage: FUTURE

alee: negative test use

Dogtag PKI is moving from Pagure issues to GitHub issues. This means that existing or new
issues will be reported and tracked through Dogtag PKI's GitHub Issue tracker.

This issue has been cloned to GitHub and is available here:
https://github.com/dogtagpki/pki/issues/2599

If you want to receive further updates on the issue, please navigate to the
GitHub issue and click on Subscribe button.

Thank you for understanding, and we apologize for any inconvenience.

Metadata Update from @dmoluguw:
- Issue close_status updated to: migrated
- Issue status updated to: Closed (was: Open)

Metadata