001package com.nimbusds.jose; 002 003 004import java.util.Collections; 005import java.util.Set; 006 007import net.jcip.annotations.ThreadSafe; 008 009 010/** 011 * Javascript Object Signing and Encryption (JOSE) header filter 012 * implementation. This class is thread-safe. 013 * 014 * @author Vladimir Dzhuvinov 015 * @version $version$ (2013-03-22) 016 */ 017@ThreadSafe 018public class DefaultHeaderFilter implements HeaderFilter { 019 020 021 /** 022 * The accepted header parameters. 023 */ 024 private Set<String> acceptedParams; 025 026 027 /** 028 * Creates a new JOSE header filter. 029 * 030 * @param acceptedParams The accepted header parameters. Must not be 031 * {@code null}. 032 */ 033 public DefaultHeaderFilter(final Set<String> acceptedParams) { 034 035 setAcceptedParameters(acceptedParams); 036 } 037 038 039 @Override 040 public Set<String> getAcceptedParameters() { 041 042 return acceptedParams; 043 } 044 045 046 @Override 047 public void setAcceptedParameters(final Set<String> acceptedParams) { 048 049 if (acceptedParams == null) { 050 051 throw new IllegalArgumentException("The accepted header parameters set must not be null"); 052 } 053 054 this.acceptedParams = Collections.unmodifiableSet(acceptedParams); 055 } 056}