(jwt *jose.JSONWebToken, p Payload)
| 166 | } |
| 167 | |
| 168 | func parseResponse(jwt *jose.JSONWebToken, p Payload) (*JSONWebToken, error) { |
| 169 | switch { |
| 170 | case p.Type() == AWS: |
| 171 | if err := json.Unmarshal(p.Amazon.Document, &p.Amazon.InstanceIdentityDocument); err != nil { |
| 172 | return nil, errors.Wrap(err, "error unmarshaling instance identity document") |
| 173 | } |
| 174 | case isAzurePayload(p): |
| 175 | if re := azureXMSMirIDRegExp.FindStringSubmatch(p.XMSMirID); len(re) > 0 { |
| 176 | p.Azure = &AzurePayload{ |
| 177 | SubscriptionID: re[1], |
| 178 | ResourceGroup: re[2], |
| 179 | ResourceType: strings.Split(re[3], "/")[1], |
| 180 | ResourceName: re[4], |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | return &JSONWebToken{ |
| 186 | JSONWebToken: jwt, |
| 187 | Payload: p, |
| 188 | }, nil |
| 189 | } |
| 190 | |
| 191 | func isAzurePayload(p Payload) bool { |
| 192 | azureTokenIssuerPrefixes := []string{ |
no test coverage detected
searching dependent graphs…