GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - lallo-unitn/Esse3-Bootleg-APFCM: "Esse3-Bootleg: A secure JavaEE web app for managing academic information, designed for teachers, students, and administrators with Dockerized deployment."

BranchesTags
Open more actions menu

Latest commit

 

History

66 Commits
66 Commits

Folders and files

NameName
Last commit message
Last commit date
.idea
.idea
 
 
adv_prog_project
adv_prog_project
 
 
report
report
 
 
screenshots
screenshots
 
 
services
services
 
 
teacher_test_signatures
teacher_test_signatures
 
 
testsslResults
testsslResults
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
docker-compose-mariadb.yml
docker-compose-mariadb.yml
 
 
docker-compose.yml
docker-compose.yml
 
 

Repository files navigation

Esse3-Bootleg Project

Project Description

Esse3-Bootleg is a JavaEE web application developed to assist teachers in assigning grades to their students. The application includes functionalities for students and administrators, offering a secure, user-friendly platform for managing academic information. The project was developed as part of the Advanced Programming of Cryptographic Methods course and aims to provide secure data handling, utilizing both data-at-rest and data-in-transit security mechanisms. The entire system is dockerized for ease of deployment and testing.

Functional Requirements

  • Login: Users can log in with a username and password. Unauthorized users are only able to access the login page.
  • Student Dashboard: Students can view their personal details, the courses they are enrolled in, and their grades.
  • Teacher Dashboard: Teachers can assign grades to students using a secure key-based mechanism.
  • Admin Dashboard: Admins can add new students to the system by inputting user details.

Security Features

  • Transport Layer Security (TLS): All communications between the client, the application server, and the database are protected using TLSv1.3.
  • Data Encryption: Data-at-rest in the database is encrypted using Transparent Data Encryption (TDE) with AES-128 in CTR mode.
  • Password Security: Passwords are hashed and salted using Bcrypt with a work factor of 13.
  • Digital Signatures: Teachers must sign grade assignments using ECDSA to ensure data integrity.

Software Architecture

Esse3-Bootleg follows the MVC (Model-View-Controller) design pattern:

  • Controller Layer: Handles the business logic, implemented via servlets that manage interactions between the model and view layers.
  • Model Layer: Manages data persistence using Java Persistence API (JPA) and interacts with the database through enterprise beans.
  • View Layer: Uses Java Server Pages (JSPs) to render the web interface, providing user interactions.

Technological Stack

  • Java 17.0.9 with JavaEE v.9.1 for backend development.
  • WildFly v.30.0.0.Final as the application server.
  • MariaDB v.11.2.2 for database management.
  • Docker & Docker-Compose for containerized deployment.
  • Apache Maven for building the project and managing dependencies.

Installation and Execution

  1. Prerequisites: Ensure Docker and Docker Compose are installed. Make sure ports 3306, 8080, 8443, and 9990 are available.
  2. Deployment:
    • Navigate to the project directory and run: docker-compose up --remove-orphans.
    • Access the web application at: https://0.0.0.0:8443/adv_prog_project_war/.
  3. Testing Roles:
    • Student: Use credentials (user1, password1) to view the student dashboard.
    • Teacher: Use credentials (jane_smith, pass456) to assign grades.
    • Admin: Use credentials (admin, admin) to add new students.

Known Limitations

  • WildFly Admin Console Security: The admin console does not have TLS enabled, leaving administrative credentials vulnerable.
  • Development Configuration: Default credentials are used for MariaDB and WildFly, which is not secure for production environments.
  • No Vault Integration for Key Management: Keys are managed through file permissions rather than a dedicated key management solution.
  • No Mutual TLS Between WildFly and MariaDB: Mutual TLS was not implemented due to documentation limitations.
  • Replay Attack Mitigation: Currently, the digital signature system lacks adequate protection against replay attacks.

About

"Esse3-Bootleg: A secure JavaEE web app for managing academic information, designed for teachers, students, and administrators with Dockerized deployment."

Topics

ecdsa-signaturejava-enterprisetransparent-data-encryption

Resources

Readme
GPL-3.0 license
Activity

Stars

0 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.