An API that suggests additional security criteria and security mechanism to be used in security requirements in a specific domain.
Table of Contents
E-SCORE is a web-based tool that enhances the security requirements engineering process by providing suggestions for additional security criteria based on a primary criterion. It utilizes the SCORE ontology, which takes into account various domains, security mechanisms, and security criteria to provide comprehensive security recommendations. This part of the project consists of an API that provides the security mechanisms and security criteria by querying an ontology.
To start the project you need to follow the next steps:
-
java
https://www.java.com/download/ie_manual.jsp -
Java server (Wildfly for example)
https://www.wildfly.org/ -
Authorization configuration Add the Issuer and the Secret you wan to use in the Engine class
public class Engine { private final String ISSUER = "<add the issuer of the token>"; private final String ApiSecret ="<add the secret used to create the token>"; public String getISSUER() { return ISSUER; } public String getApiSecret() { return ApiSecret; } }
- After building the artifact, add it in the deployments folder of the server (standalone -> deployment)
- Or configure the IDE to run the code using the server (Add Configuration)
The deployed code will expose an API with the following end-points:
- /criteria
Inputs : -
Output: JSON Array - all security criteria in the ontology
- /criteria/{relation}/{criteria}
Inputs:
relation: one of the defined relations between the security criteria
criteria : one of the 30 defined security criteria
Output: JSON Array - all criteria that have a given relationship with a given criterion
- /mechanism
Inputs: -
Output: JSON Array - all security mechanisms in the ontology
- /domain
Inputs: -
Output: JSON Array - all domains in the ontology
- /domain/ {domain}/mechanisms
Inputs:
domain: one of the domains defined in the ontology
Output: JSON Array - the security mechanisms of a specific domain in the ontology
- /domain/{domain}/criteria
Inputs:
domain: one of the domains defined in the ontology
Output: JSON Array- the security criteria of a specific domain in the ontology
- /domain/ {domain}/{criteria}
Inputs:
domain: one of the domains defined in the ontology
criteria : one of the 30 security criteria defined
Output: JSON Array- the security mechanisms of a specific security criterion in a specific domain of the ontology.
- /domain/ {domain}/{relation}/{criteria}
Inputs:
domain: one of the domains defined in the ontology
relation : one of the relations defined between the security criteria
criteria : one of the 30 security criteria defined (figure 2)
Output: JSON Array- the security criteria that have a given relationship with a given security criterion in a given domain of the ontology.
- /domain/ {domain}/{relation}/all
Inputs:
domain: one of the domains defined in the ontology
relation : one of the relations defined between the security criteria
Output: JSON Object (Key-Value) - additional security criteria that have a given relationship with all security criteria in a given domain of the ontology. (Key -relation-> value)
For further explanation of the SCORE ontology and the use of the E-SCORE web application please refer to the following document: Documentation
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/NewFeature) - Commit your Changes (
git commit -m 'Add some NewFeature') - Push to the Branch (
git push origin feature/NewFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
Hiba Hnaini - hiba-hnaini@hotmail.com
Project Link: https://github.com/hibahnaini/E-SCORE-Backend