[COMP-1143]Missing HTTP Security Header#955
Conversation
Signed-off-by: munishchouhan <hrma017@gmail.com>
|
testing locally: |
|
Check all headers: |
Signed-off-by: munishchouhan <hrma017@gmail.com>
|
tested in dev: |
|
tested augmentation: |
Signed-off-by: munishchouhan <hrma017@gmail.com>
|
@claude review |
|
Claude finished @pditommaso's task —— View job Code Review Complete ✅Todo List:
Overall AssessmentThis is a well-implemented, secure, and production-ready HTTP security headers feature. The implementation follows Micronaut best practices and Wave's coding conventions. ✅ StrengthsExcellent Architecture
Comprehensive Security CoverageAll critical security headers implemented with sensible defaults:
Robust Configuration
Excellent Test CoverageThe test suite (
Production Quality Code
📝 Minor ObservationsCode Quality Notes
Security Best Practices Verified
Testing NotesThe tests properly verify:
🔍 Code-Specific Comments
|
Signed-off-by: munishchouhan <hrma017@gmail.com>
Signed-off-by: munishchouhan <hrma017@gmail.com>
- Rename config property prefix for clarity - Remove default values from @value annotations (defined in application.yml) - Normalize contentSecurityPolicy to content-security-policy 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary of recent changesThe following refinements were made to the security headers implementation: Configuration property rename
Code cleanup in
|
|
@pditommaso I cannot merge this PR because it has not verified commits |
Overview
This PR implements HTTP security headers for all Wave service responses to improve security posture and protect against common web vulnerabilities.
Changes
1. HTTP Security Headers Implementation
New Files Created:
src/main/groovy/io/seqera/wave/configuration/SecurityHeadersConfig.groovysrc/main/groovy/io/seqera/wave/filter/SecurityHeadersFilter.groovysrc/test/groovy/io/seqera/wave/filter/SecurityHeadersFilterTest.groovyModified Files:
src/main/groovy/io/seqera/wave/filter/FilterOrder.groovysrc/main/resources/application.ymlSummary:
Implemented a new HTTP filter that adds industry-standard security headers to all Wave service responses. The filter runs with the highest priority (-120) to ensure security headers are always present.
Security Headers Added:
Strict-Transport-Securitymax-age=31536000; includeSubDomainsX-Frame-OptionsDENYX-Content-Type-OptionsnosniffReferrer-Policystrict-origin-when-cross-originPermissions-Policycamera=(), microphone=(), geolocation=()Content-Security-Policydefault-src 'self'; frame-ancestors 'none'Architecture:
Key Features:
application.ymlwave.security.headers.enabled: falseOrderedinterface for proper filter execution orderConfiguration:
Default configuration added to
application.yml:Filter Order:
Security Benefits