示例#1
0
文件: SAuth.java 项目: nypgit/alto
  public void maySetSAuthVersion(HttpRequest request) {
    if (request.hasNotHeader(Header.SAuth.Value.Authorization))
      request.setHeader(Header.SAuth.Value.Authorization);

    if (request.hasNotHeader(Header.SAuth.Value.Version))
      request.setHeader(Header.SAuth.Value.Version);
  }
示例#2
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String getSAuthNonce(HttpRequest request) {
   return request.getHeaderString(Header.SAuth.Nonce);
 }
示例#3
0
文件: SAuth.java 项目: nypgit/alto
 public alto.lang.Header getSAuthVersionHeader(HttpRequest request) {
   return request.getHeader(Header.SAuth.Version);
 }
示例#4
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthSignature(HttpRequest request, long folded) {
   java.lang.String value = alto.io.u.Hex.encode(folded);
   request.setHeader(Header.SAuth.Signature, value);
 }
示例#5
0
文件: SAuth.java 项目: nypgit/alto
 public long getSAuthSignatureLong(HttpRequest request) {
   java.math.BigInteger bint = request.getHeaderHex(Header.SAuth.Signature);
   if (null != bint) return bint.longValue();
   else return 0L;
 }
示例#6
0
文件: SAuth.java 项目: nypgit/alto
 public alto.lang.Header getSAuthSignatureHeader(HttpRequest request) {
   return request.getHeader(Header.SAuth.Signature);
 }
示例#7
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthNonce(HttpRequest request, java.lang.String value) {
   request.setHeader(Header.SAuth.Nonce, value);
 }
示例#8
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthNonce(HttpRequest request) {
   request.setHeader(Header.SAuth.Nonce, alto.io.u.Prng.RandLongStringHex());
 }
示例#9
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String validateSAuthUIDHeaderString(HttpRequest request) {
   return request.validateHeaderString(Header.SAuth.UID);
 }
示例#10
0
文件: SAuth.java 项目: nypgit/alto
 public alto.lang.Header getSAuthUIDHeader(HttpRequest request) {
   return request.getHeader(Header.SAuth.UID);
 }
示例#11
0
文件: SAuth.java 项目: nypgit/alto
 public boolean hasNotSAuthUID(HttpRequest request) {
   return (request.hasNotHeader(Header.SAuth.UID));
 }
示例#12
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String validateSAuthVersionHeaderString(HttpRequest request) {
   java.lang.String re = request.validateHeaderString(Header.SAuth.Version);
   if (null != re && re.equals(Header.SAuth.Value.Version.toString())) {
     return re;
   } else throw new alto.sys.BadRequestException(re);
 }
示例#13
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String getSAuthVersion(HttpRequest request) {
   return request.getHeaderString(Header.SAuth.Version);
 }
示例#14
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String getSAuthNonceHeaderString(HttpRequest request) {
   alto.lang.Header header = request.getHeader(Header.SAuth.Nonce);
   if (null != header) return header.toString();
   else return null;
 }
示例#15
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String getSAuthUID(HttpRequest request) {
   return request.getHeaderString(Header.SAuth.UID);
 }
示例#16
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String validateSAuthNonceHeaderString(HttpRequest request) {
   java.lang.String re = request.validateHeaderString(Header.SAuth.Nonce);
   java.math.BigInteger value = request.getHeaderHex(Header.SAuth.Nonce);
   if (null != value && 14 < value.bitLength()) return re;
   else throw new alto.sys.BadRequestException(re);
 }
示例#17
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthUID(HttpRequest request, java.lang.String value) {
   request.setHeader(Header.SAuth.UID, value);
 }
示例#18
0
文件: SAuth.java 项目: nypgit/alto
 public void maySetSAuthNonce(HttpRequest request) {
   if (request.hasNotHeader(Header.SAuth.Nonce))
     request.setHeader(Header.SAuth.Nonce, alto.io.u.Prng.RandLongStringHex());
 }
示例#19
0
文件: SAuth.java 项目: nypgit/alto
 public void maySetSAuthUID(HttpRequest request, java.lang.String uid) {
   java.lang.String value = this.getSAuthUID(request);
   if (null == value || (!value.equals(uid))) request.setHeader(Header.SAuth.UID, uid);
 }
示例#20
0
文件: SAuth.java 项目: nypgit/alto
 public boolean hasNotSAuthSignature(HttpRequest request) {
   return (request.hasNotHeader(Header.SAuth.Signature));
 }
示例#21
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthUID(HttpRequest request, Principal principal) {
   request.setHeader(Header.SAuth.UID, principal.getName());
 }
示例#22
0
文件: SAuth.java 项目: nypgit/alto
 public java.lang.String getSAuthSignature(HttpRequest request) {
   return request.getHeaderString(Header.SAuth.Signature);
 }
示例#23
0
文件: SAuth.java 项目: nypgit/alto
 public boolean hasNotSAuthNonce(HttpRequest request) {
   return (request.hasNotHeader(Header.SAuth.Nonce));
 }
示例#24
0
文件: SAuth.java 项目: nypgit/alto
 public void setSAuthSignature(HttpRequest request, java.lang.String value) {
   request.setHeader(Header.SAuth.Signature, value);
 }
示例#25
0
文件: SAuth.java 项目: nypgit/alto
 public alto.lang.Header getSAuthNonceHeader(HttpRequest request) {
   return request.getHeader(Header.SAuth.Nonce);
 }
示例#26
0
文件: SAuth.java 项目: nypgit/alto
  public boolean sign(Principal.Authentic keys, HttpRequest request) {
    if (null != keys) {
      RSA rsa = new RSA(keys);
      request.maySetDate();
      request.maySetHost();
      request.setContentMD5();
      this.setSAuthVersion(request);
      this.setSAuthUID(request, keys.getUID());
      this.setSAuthNonce(request);

      java.lang.String requestline =
          request.validateMethod() + ' ' + request.validatePathComplete();
      java.lang.String headerHost = request.validateHostHeaderString();
      java.lang.String headerDate = request.validateDateHeaderString();
      java.lang.String headerSAuthVersion = this.validateSAuthVersionHeaderString(request);
      java.lang.String headerSAuthUID = this.validateSAuthUIDHeaderString(request);
      java.lang.String headerSAuthNonce = this.validateSAuthNonceHeaderString(request);

      java.lang.String headerContentType = null;
      java.lang.String headerContentLength = null;
      java.lang.String headerContentEncoding = null;
      java.lang.String headerContentRange = null;
      java.lang.String headerContentLocation = null;
      java.lang.String headerETag = null;
      java.lang.String headerLastModified = null;
      java.lang.String headerExpires = null;
      java.lang.String headerContentMD5 = null;

      SHA1 sha = new SHA1();
      sha.update(requestline);
      sha.update(headerHost);
      sha.update(headerDate);
      if (request.isContentLengthPositive()) {

        headerContentType = request.getContentTypeHeaderString();
        sha.update(headerContentType);

        headerContentLength = request.validateContentLengthHeaderString();
        sha.update(headerContentLength);

        headerContentEncoding = request.getContentEncodingHeaderString();
        sha.update(headerContentEncoding);

        headerContentRange = request.getContentRangeHeaderString();
        sha.update(headerContentRange);

        headerContentLocation = request.getContentLocationHeaderString();
        sha.update(headerContentLocation);

        headerETag = request.getETagHeaderString();
        sha.update(headerETag);

        headerLastModified = request.getLastModifiedHeaderString();
        sha.update(headerLastModified);

        headerExpires = request.getExpiresHeaderString();
        sha.update(headerExpires);

        headerContentMD5 = request.validateContentMD5HeaderString(); // (verifyContentMD5)
        sha.update(headerContentMD5);
      }
      sha.update(headerSAuthVersion);
      sha.update(headerSAuthUID);
      sha.update(headerSAuthNonce);

      long signature = Function.Xor.Hash64(rsa.sign(sha));

      this.setSAuthSignature(request, signature);
      return true;
    } else throw new alto.sys.Error.Argument();
  }
示例#27
0
文件: SAuth.java 项目: nypgit/alto
 public boolean hasNotSAuthVersion(HttpRequest request) {
   return (request.hasNotHeader(Header.SAuth.Version));
 }