Interface SecurityRequirementMapper

All Known Implementing Classes:
SecurityRequirementMapperImpl

public interface SecurityRequirementMapper
Mapper between domain security requirements and protobuf SecurityRequirement messages.

Domain representation: List<SecurityRequirement> where each SecurityRequirement contains a schemes map with scheme names as keys and scopes as values.

Proto representation: repeated SecurityRequirement where each SecurityRequirement has map<string, StringList> schemes.

Example: A security requirement that allows either OAuth2 with read/write scopes OR API Key:

 Domain: [
   SecurityRequirement{schemes: {"oauth2": ["read", "write"]}},
   SecurityRequirement{schemes: {"apiKey": []}}
 ]
 Proto: [
   SecurityRequirement{schemes: {"oauth2": StringList{values: ["read", "write"]}}},
   SecurityRequirement{schemes: {"apiKey": StringList{values: []}}}
 ]
 

Manual Implementation Required: Handles complex nested structure (List<SecurityRequirement>repeated SecurityRequirement with map<string, StringList>) requiring manual iteration and StringList wrapper handling.

  • Field Details

  • Method Details

    • mapSecurityRequirement

      default SecurityRequirement mapSecurityRequirement(SecurityRequirement domainRequirement)
      Converts a single domain SecurityRequirement to a proto SecurityRequirement message.

      MapStruct will call this method for each element when mapping the list.

      Parameters:
      domainRequirement - domain SecurityRequirement with schemes map
      Returns:
      SecurityRequirement proto message, or null if input is null
    • toProto

      default List<SecurityRequirement> toProto(List<SecurityRequirement> domainSecurity)
      Converts domain security requirements to proto SecurityRequirement messages.

      Each SecurityRequirement in the domain list becomes one SecurityRequirement message in proto, representing one way to satisfy the security requirements (OR relationship between list items).

      Parameters:
      domainSecurity - list of SecurityRequirement domain objects
      Returns:
      list of SecurityRequirement proto messages, or null if input is null
    • fromProto

      default List<SecurityRequirement> fromProto(List<SecurityRequirement> protoSecurity)
      Converts proto SecurityRequirement messages to domain security requirements.
      Parameters:
      protoSecurity - list of SecurityRequirement proto messages
      Returns:
      list of SecurityRequirement domain objects, or null if input is null