Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


E-SCORE Back-End

An API that suggests additional security criteria and security mechanism to be used in security requirements in a specific domain.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. Contact

About The Project

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.

(back to top)

Built With

  • JavaEE
  • OWL
  • apache-jena
  • jwt

(back to top)

Getting Started

To start the project you need to follow the next steps:

Prerequisites

  • 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;
    }
    
    }

Installation

  • 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)

(back to top)

Usage

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

(back to top)

Contributing

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".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/NewFeature)
  3. Commit your Changes (git commit -m 'Add some NewFeature')
  4. Push to the Branch (git push origin feature/NewFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Hiba Hnaini - hiba-hnaini@hotmail.com

Project Link: https://github.com/hibahnaini/E-SCORE-Backend

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages