sasl-auth.go 650 B

1234567891011121314151617181920212223242526272829
  1. package entity
  2. import (
  3. "bytes"
  4. "encoding/base64"
  5. "encoding/xml"
  6. )
  7. type PlainAuth struct {
  8. XMLName xml.Name
  9. Xmlns string `xml:"xmlns,attr"`
  10. Mechanism string `xml:"mechanism,attr"`
  11. Data string `xml:",chardata"`
  12. }
  13. type Success struct {
  14. dumbProducer
  15. }
  16. func (p *PlainAuth) Init(user, pwd string) {
  17. data := bytes.NewBuffer([]byte(user + ":" + pwd))
  18. data.WriteByte(0)
  19. data.Write([]byte(user))
  20. data.WriteByte(0)
  21. data.Write([]byte(pwd))
  22. p.Data = base64.StdEncoding.EncodeToString(data.Bytes())
  23. }
  24. var PlainAuthPrototype = PlainAuth{XMLName: xml.Name{Local: "auth"}, Xmlns: "urn:ietf:params:xml:ns:xmpp-sasl", Mechanism: "PLAIN"}