client_claims.go 895 B

123456789101112131415161718192021222324252627282930313233
  1. package pac
  2. import (
  3. "bytes"
  4. "fmt"
  5. "gopkg.in/jcmturner/rpc.v1/mstypes"
  6. "gopkg.in/jcmturner/rpc.v1/ndr"
  7. )
  8. // Claims reference: https://msdn.microsoft.com/en-us/library/hh553895.aspx
  9. // ClientClaimsInfo implements https://msdn.microsoft.com/en-us/library/hh536365.aspx
  10. type ClientClaimsInfo struct {
  11. ClaimsSetMetadata mstypes.ClaimsSetMetadata
  12. ClaimsSet mstypes.ClaimsSet
  13. }
  14. // Unmarshal bytes into the ClientClaimsInfo struct
  15. func (k *ClientClaimsInfo) Unmarshal(b []byte) (err error) {
  16. dec := ndr.NewDecoder(bytes.NewReader(b))
  17. m := new(mstypes.ClaimsSetMetadata)
  18. err = dec.Decode(m)
  19. if err != nil {
  20. err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSetMetadata: %v", err)
  21. }
  22. k.ClaimsSetMetadata = *m
  23. k.ClaimsSet, err = k.ClaimsSetMetadata.ClaimsSet()
  24. if err != nil {
  25. err = fmt.Errorf("error unmarshaling ClientClaimsInfo ClaimsSet: %v", err)
  26. }
  27. return
  28. }