The Blocklist XStream adapter supports two distinct security modes, each designed for different scenarios and security requirements.
| Aspect | Allowlist Mode | Blocklist Mode |
|---|---|---|
| Security Level | ⭐⭐⭐⭐⭐ Maximum | ⭐⭐⭐⭐ Good |
| Default Behavior | ❌ Deny all types | ✅ Allow all types |
| Unknown Types | ❌ Blocked | ✅ Allowed |
| Known Dangerous Types | ❌ Always blocked | ❌ Always blocked |
| Configuration Effort | 🔺 High | 🔻 Low |
| Migration Complexity | 🔺 Requires type inventory | 🔻 Drop-in replacement |
| Performance | ⚡ Slightly faster | ⚡ Standard performance |
| Maintenance | 📋 Regular type review needed | 📋 Minimal maintenance |
| New Feature Impact | 🔧 May require configuration updates | 🔧 Usually works immediately |
Use this matrix to choose the appropriate mode:
| Your Situation | Recommended Mode | Rationale |
|---|---|---|
| New project + High security needs | ✅ Allowlist | Maximum security, no legacy constraints |
| New project + Standard security needs | ✅ Allowlist | Good practice, easier to maintain from start |
| Legacy project + Immediate security needed | ✅ Blocklist → Allowlist | Quick protection, plan migration |
| Legacy project + Complex type usage | ✅ Blocklist | Practical balance of security and compatibility |
| Processing untrusted external data | ✅ Allowlist | Zero trust for unknown input |
| Internal service communication | ✅ Blocklist or Allowlist | Depends on complexity and security requirements |
| Plugin/dynamic type system | ✅ Blocklist | Allowlist may be impractical |
| Regulatory compliance required | ✅ Allowlist | Meets strictest audit requirements |
Both modes always block classes from Atlassian's security blocklist - this protection cannot be overridden in either mode. The difference is only in how they handle unknown types not on the blocklist.
Rate this page: