Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Rafael Monnerat
erp5
Commits
5c9d6d2e
Commit
5c9d6d2e
authored
Nov 01, 2023
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_certificate_authority: Use specific property for store CSR ID
it ensure that property is an integer.
parent
f9a339d0
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
109 additions
and
15 deletions
+109
-15
bt5/erp5_certificate_authority/MixinTemplateItem/portal_components/mixin.erp5.CertificateLoginMixin.py
...tem/portal_components/mixin.erp5.CertificateLoginMixin.py
+9
-9
bt5/erp5_certificate_authority/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
...rtalTypePropertySheetTemplateItem/property_sheet_list.xml
+3
-0
bt5/erp5_certificate_authority/PropertySheetTemplateItem/portal_property_sheets/CaucaseCertificateLogin.xml
...teItem/portal_property_sheets/CaucaseCertificateLogin.xml
+62
-0
bt5/erp5_certificate_authority/PropertySheetTemplateItem/portal_property_sheets/CaucaseCertificateLogin/csr_id_property.xml
...operty_sheets/CaucaseCertificateLogin/csr_id_property.xml
+28
-0
bt5/erp5_certificate_authority/TestTemplateItem/portal_components/test.erp5.testCertificateAuthorityPerson.py
...al_components/test.erp5.testCertificateAuthorityPerson.py
+4
-5
bt5/erp5_certificate_authority/bt/template_portal_type_property_sheet_list
...ate_authority/bt/template_portal_type_property_sheet_list
+2
-1
bt5/erp5_certificate_authority/bt/template_property_sheet_id_list
..._certificate_authority/bt/template_property_sheet_id_list
+1
-0
No files found.
bt5/erp5_certificate_authority/MixinTemplateItem/portal_components/mixin.erp5.CertificateLoginMixin.py
View file @
5c9d6d2e
...
@@ -53,11 +53,11 @@ class CertificateLoginMixin:
...
@@ -53,11 +53,11 @@ class CertificateLoginMixin:
certificate_dict
=
{
certificate_dict
=
{
"common_name"
:
self
.
getReference
()
"common_name"
:
self
.
getReference
()
}
}
if
self
.
getReference
()
and
self
.
get
SourceReference
():
if
self
.
getReference
()
and
self
.
get
CsrId
():
if
csr
is
not
None
:
if
csr
is
not
None
:
raise
ValueError
(
"The certificate was already requsted without the certificate sign request."
)
raise
ValueError
(
"The certificate was already requsted without the certificate sign request."
)
certificate_dict
[
"id"
]
=
self
.
get
SourceReference
()
certificate_dict
[
"id"
]
=
self
.
get
CsrId
()
crt_pem
=
caucase_connector
.
getCertificate
(
int
(
self
.
getSourceReference
()
))
crt_pem
=
caucase_connector
.
getCertificate
(
self
.
getCsrId
(
))
certificate_dict
[
"certificate"
]
=
crt_pem
certificate_dict
[
"certificate"
]
=
crt_pem
# We should assert that reference is the CN of crt_pem
# We should assert that reference is the CN of crt_pem
return
certificate_dict
return
certificate_dict
...
@@ -75,18 +75,18 @@ class CertificateLoginMixin:
...
@@ -75,18 +75,18 @@ class CertificateLoginMixin:
caucase_connector
.
createCertificate
(
csr_id
,
template_csr
=
template_csr
)
caucase_connector
.
createCertificate
(
csr_id
,
template_csr
=
template_csr
)
crt_pem
=
caucase_connector
.
getCertificate
(
csr_id
)
crt_pem
=
caucase_connector
.
getCertificate
(
csr_id
)
self
.
set
SourceReference
(
csr_id
)
self
.
set
CsrId
(
csr_id
)
return
{
return
{
"certificate"
:
crt_pem
,
"certificate"
:
crt_pem
,
"id"
:
self
.
get
SourceReference
(),
"id"
:
self
.
get
CsrId
(),
"common_name"
:
reference
"common_name"
:
reference
}
}
security
.
declarePublic
(
'getCertificate'
)
security
.
declarePublic
(
'getCertificate'
)
def
getCertificate
(
self
,
csr
=
None
):
def
getCertificate
(
self
,
csr
=
None
):
"""Returns new SSL certificate"""
"""Returns new SSL certificate"""
if
csr
is
None
and
self
.
get
SourceReference
()
is
None
:
if
csr
is
None
and
self
.
get
CsrId
()
is
None
:
key
,
csr
=
self
.
_getCaucaseConnector
().
_createCertificateRequest
()
key
,
csr
=
self
.
_getCaucaseConnector
().
_createCertificateRequest
()
certificate_dict
=
self
.
_getCertificate
(
csr
=
csr
)
certificate_dict
=
self
.
_getCertificate
(
csr
=
csr
)
certificate_dict
[
"key"
]
=
key
certificate_dict
[
"key"
]
=
key
...
@@ -96,13 +96,13 @@ class CertificateLoginMixin:
...
@@ -96,13 +96,13 @@ class CertificateLoginMixin:
def
_revokeCertificate
(
self
,
key_pem
=
None
):
def
_revokeCertificate
(
self
,
key_pem
=
None
):
if
self
.
getDestinationReference
()
is
not
None
or
(
if
self
.
getDestinationReference
()
is
not
None
or
(
self
.
getReference
()
is
not
None
and
self
.
get
SourceReference
()
is
None
self
.
getReference
()
is
not
None
and
self
.
get
CsrId
()
is
None
):
):
raise
ValueError
(
"You cannot revoke certificates from prior implementation!"
)
raise
ValueError
(
"You cannot revoke certificates from prior implementation!"
)
if
self
.
get
SourceReference
()
is
not
None
:
if
self
.
get
CsrId
()
is
not
None
:
caucase_connector
=
self
.
_getCaucaseConnector
()
caucase_connector
=
self
.
_getCaucaseConnector
()
crt_pem
=
caucase_connector
.
getCertificate
(
int
(
self
.
getSourceReference
()
))
crt_pem
=
caucase_connector
.
getCertificate
(
self
.
getCsrId
(
))
if
key_pem
is
None
:
if
key_pem
is
None
:
return
caucase_connector
.
revokeCertificate
(
crt_pem
,
key_pem
)
return
caucase_connector
.
revokeCertificate
(
crt_pem
,
key_pem
)
return
caucase_connector
.
revokeCertificate
(
crt_pem
)
return
caucase_connector
.
revokeCertificate
(
crt_pem
)
...
...
bt5/erp5_certificate_authority/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
View file @
5c9d6d2e
...
@@ -4,4 +4,7 @@
...
@@ -4,4 +4,7 @@
<item>
Reference
</item>
<item>
Reference
</item>
<item>
Url
</item>
<item>
Url
</item>
</portal_type>
</portal_type>
<portal_type
id=
"Certificate Login"
>
<item>
CaucaseCertificateLogin
</item>
</portal_type>
</property_sheet_list>
</property_sheet_list>
\ No newline at end of file
bt5/erp5_certificate_authority/PropertySheetTemplateItem/portal_property_sheets/CaucaseCertificateLogin.xml
0 → 100644
View file @
5c9d6d2e
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Property Sheet"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_count
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_mt_index
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_tree
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
CaucaseCertificateLogin
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Length"
module=
"BTrees.Length"
/>
</pickle>
<pickle>
<int>
0
</int>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"OOBTree"
module=
"BTrees.OOBTree"
/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"OOBTree"
module=
"BTrees.OOBTree"
/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
bt5/erp5_certificate_authority/PropertySheetTemplateItem/portal_property_sheets/CaucaseCertificateLogin/csr_id_property.xml
0 → 100644
View file @
5c9d6d2e
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Standard Property"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
elementary_type/int
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
Certificate Signing Request ID
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
csr_id_property
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_certificate_authority/TestTemplateItem/portal_components/test.erp5.testCertificateAuthorityPerson.py
View file @
5c9d6d2e
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
#
#
##############################################################################
##############################################################################
#import os
import
random
import
random
from
Products.ERP5Type.tests.ERP5TypeCaucaseTestCase
import
ERP5TypeCaucaseTestCase
from
Products.ERP5Type.tests.ERP5TypeCaucaseTestCase
import
ERP5TypeCaucaseTestCase
from
Products.ERP5Type.Core.Workflow
import
ValidationFailed
from
Products.ERP5Type.Core.Workflow
import
ValidationFailed
...
@@ -325,7 +324,7 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
...
@@ -325,7 +324,7 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
SourceReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
CsrId
(),
None
)
self
.
assertEqual
(
None
,
certificate_login
.
revokeCertificate
())
self
.
assertEqual
(
None
,
certificate_login
.
revokeCertificate
())
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
...
@@ -351,7 +350,7 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
...
@@ -351,7 +350,7 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
SourceReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
CsrId
(),
None
)
self
.
assertEqual
(
None
,
certificate_login
.
revokeCertificate
(
certificate_dict
[
'key'
]))
self
.
assertEqual
(
None
,
certificate_login
.
revokeCertificate
(
certificate_dict
[
'key'
]))
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
...
@@ -377,11 +376,11 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
...
@@ -377,11 +376,11 @@ class TestPersonCertificateLogin(ERP5TypeCaucaseTestCase):
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getReference
().
decode
(
"UTF-8"
),
cn_list
[
0
])
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertEqual
(
certificate_login
.
getDestinationReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
SourceReference
(),
None
)
self
.
assertNotEqual
(
certificate_login
.
get
CsrId
(),
None
)
# Older implementation wont set it on the Certificate login
# Older implementation wont set it on the Certificate login
certificate_login
.
setDestinationReference
(
None
)
certificate_login
.
setDestinationReference
(
None
)
certificate_login
.
set
SourceReference
(
None
)
certificate_login
.
set
CsrId
(
None
)
# Still raise since it has no valid certificate anymore
# Still raise since it has no valid certificate anymore
self
.
assertRaises
(
ValueError
,
certificate_login
.
revokeCertificate
)
self
.
assertRaises
(
ValueError
,
certificate_login
.
revokeCertificate
)
...
...
bt5/erp5_certificate_authority/bt/template_portal_type_property_sheet_list
View file @
5c9d6d2e
Caucase Connector | CaucaseConnector
Caucase Connector | CaucaseConnector
Caucase Connector | Reference
Caucase Connector | Reference
Caucase Connector | Url
Caucase Connector | Url
Certificate Login | CaucaseCertificateLogin
\ No newline at end of file
bt5/erp5_certificate_authority/bt/template_property_sheet_id_list
View file @
5c9d6d2e
CaucaseCertificateLogin
CaucaseConnector
CaucaseConnector
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment