Java project workshop
You build three realistic Java projects end to end in your own lab network, combining design, testing, security and performance.
Level 501 · 13 lessons · 12 practice labs
Lessons
Event processing service
- Project: a service that collects events over HTTP
- Project: a rule engine and alert generation
- Project: storing and querying events
- Short task: an endurance test at a thousand events per second
File integrity monitor
- Project: a hash-based baseline
- Project: watching for changes with WatchService
- Project: a signed change report
- Short task: detect that the report was tampered with
Access management panel
- Project: the user, role and permission model
- Project: an authorised API with Spring Boot
- Project: an audit trail and export
- Short task: a review job that finds unused permissions
Capstone
- Capstone: connect the three services to one security panel and present it
Practice labs
- Collecting events over HTTP: Write an endpoint that accepts JSON events, rejects one not matching the schema with 400 and appends accepted ones to memory in order.
- Raising alerts with a rule engine: Apply threshold and window rules read from a file to the event stream, raise alerts without repeats and let rules be refreshed without a restart.
- An endurance test at a thousand events per second: Write a load tool sending a thousand events per second to your own service through the lab target, measure loss, latency and memory growth and remove the bottleneck found.
- Creating a hash-based baseline: Compute SHA-256 hashes of a directory's files by streaming and write a baseline with path, size and hash in a stable order.
- Watching for changes with WatchService: Watch a directory tree with WatchService, register new subdirectories, rescan on an overflow event and merge bursts of events into one change.
- A signed change report and its verification: Sign the change report with a key from a keystore and have the verification tool report an altered report or signature with distinct errors.
- Building the user, role and permission model: Define user, role and permission entities with their relations and write the query returning a user's effective permissions.
- An authorised API with an audit trail: Open role assignment endpoints only to administrators, write each change with who, what and when to an audit table in the same transaction and add its export.
- A review job that finds unused permissions: Compare Selvikent Belediyesi's access logs with permission assignments and write the scheduled job reporting permissions unused for ninety days and orphaned accounts.
- Gathering the status of three services in one response: Query the health endpoints of three services with timeouts and return each one's status in a single JSON response.
- Storing and querying events: Write events to the database in batches and keep paged queries by time range and type and an hourly summary endpoint fast with indexes.
- Connecting the three services to one security panel: Join the event, integrity and access services in one panel on the lab network so the panel works with partial data while one service is down and inter-service calls are authenticated.
About this course
You build three realistic Java projects end to end in your own lab network, combining design, testing, security and performance.
What you will learn
- Event processing service
- File integrity monitor
- Access management panel
- Capstone
Prerequisites
You should be experienced in the topics of the same path up to level 401.
Lab environment
Lessons run in your own Kali Linux terminal in the browser, connected to a private lab network. Nothing to install.
Frequently asked questions
- Is this course right for my level?
- The course is at level 501; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.