83 Commits

Author SHA1 Message Date
f07f2cffa0 credentials: Use net.SplitHostPort safely parse IPv6 authorities in ClientHandshake (#3082) 2019-10-09 10:48:24 -07:00
47d3cfe042 Adding a RequestInfo struct for propagating request data to Get… (#3057)
Add a RequestInfo struct which initially is used for passing the full request method (though could later be expanded to pass more info) so that things like GetRequestMetadata can be used to apply logic based on that data.

This is a fix for #3019
2019-10-04 09:27:09 -07:00
b7325a3150 Update go.mod for golang/x/tools and staticcheck (#2832) 2019-05-24 11:13:46 -07:00
4abb3622b0 tls: append h2 to tlsconfig.NextProtos (#2744) 2019-04-08 09:56:02 -07:00
ca62c6b92c channelz: fix GetSecurityValue function name. (#2450) 2018-11-30 06:01:10 +08:00
ef2b8e2f53 internal: move syscall.Conn wrapper into a separate package (#2457)
Also skip wrapping if `rawConn` doesn't implement `syscall.Conn`.
2018-11-15 13:29:39 -08:00
04ea82009c cleanup: replace "x/net/context" import with "context" (#2439) 2018-11-12 13:30:41 -08:00
59a2cfbdf9 Remove support for Go1.6-1.8 (#2428) 2018-11-01 15:43:42 -07:00
36ef35ddb6 internal: add doc to tlsConn wrapper for channelz (#2421) 2018-11-01 14:31:51 -07:00
4dedfdc82c credentials: support google default creds (#2315)
Google default creds is a combo of ALTS, TLS and OAuth2. The right set of creds will be picked to use based on environment.

This PR contains:
 - A new `creds.Bundle` type
   - changes to use it in ClientConn and transport
   - dial option to set the bundle for a ClientConn
   - balancer options and NewSubConnOption to set it for SubConn
 - Google default creds implementation by @cesarghali 
 - grpclb changes to use different creds mode for different servers
 - interop client changes for google default creds testing
2018-09-25 13:17:25 -07:00
2106e3b393 credentials: cleanup version-specific files (#2178) 2018-06-27 15:49:04 -07:00
7268ca41d3 channelz: stage 4 - add security and socket option info with appengine build tags (#2149) 2018-06-25 10:32:20 -07:00
96cefb43cf Revert " channelz: stage 4 - add security and socket option info" (#2124)
Reverts grpc/grpc-go#2098

Appengine will fail with the error below:
```
go-app-builder: Failed parsing input: parser: bad import "syscall" in google.golang.org/grpc/channelz/funcs.go from GOPATH
```

The root cause of it is in type_linux.go.
629f6bc5e5/channelz/types_linux.go (L21-L25)
2018-06-05 18:04:12 -07:00
c1a21e22a6 channelz: stage 4 - add security and socket option info (#2098) 2018-06-05 13:50:19 -07:00
d33a923190 Revert "channelz: stage 4 - add security and socket option info" (#2096)
This reverts commit 7cc2837209c4fa87008717b4e94a085820d7d779.

The PR breaks darwin builds

src/google.golang.org/grpc/channelz/types_unix.go:35:15: undefined: unix.TCPInfo
2018-05-22 15:31:57 -07:00
7cc2837209 channelz: stage 4 - add security and socket option info (#1965) 2018-05-22 13:32:02 -07:00
7aea499f91 credentials: return Unavailable instead of Internal for per-RPC creds errors (#1776)
Or if `PerRPCCredentials` returns a `status` error, honor that instead.
2018-01-03 09:47:07 -08:00
4318e6475c server: apply deadline to new connections until all handshaking is completed (#1646) 2017-11-03 13:53:17 -07:00
1687ce5770 ClientHandshake should get the dialing endpoint as the authority (#1607) 2017-10-23 11:40:43 -07:00
faebfcb7bf Remove single-entry var blocks (#1589) 2017-10-18 09:59:23 -07:00
ddbf6c46a6 autofix license notice 2017-06-08 14:42:19 +02:00
7ddf89f9b7 Fix doc 2017-05-04 10:30:28 -07:00
ccdf270424 add document to ClientHandshake about returning temporary error (#1125) 2017-03-28 11:12:50 -07:00
4ed348913c ClientHandshake to return AuthInfo (#956)
* Initial commit

* Initial commit 2

* minor update

* goimport update

* resolved race condition

* added test for TLSInfo on server side

* Post review updates

* port review changes

debug

debug

* refactoring and added third function

* post review changes

* post review changes

* post review updates

* post review commit

* post review commit

* post review update

* post review update

* post review update

* post review update

* post review commit

* post review update
2017-01-09 13:29:20 -08:00
e63e0d4095 Add Clone() and OverrideServerName() to TransportCredentials 2016-09-26 15:18:51 -07:00
a00cbfeab5 Overwrite authority if creds servername is specified 2016-09-06 11:23:30 -07:00
0c58a17d6f Add credentials ErrConnDispatch 2016-08-24 16:20:57 -07:00
32bc9f2357 Remove conn.Close() in tlsCred.ServerHandshake()
Removes the responsibility from tlsCred.ServerHandshake() of calling Close() on the underlying connection. Returning an error is enough to close the connection: https://github.com/grpc/grpc-go/blob/master/server.go#L370.
2016-08-08 07:11:07 -05:00
efa105d0d2 Cleanup conn.Close() handling in newHTTP2Client()
Removes the need to close the underlying connection in tlsCreds.ClientHandshake().
2016-08-08 03:49:40 -05:00
5c7ed938f9 credentials: plumb cancellation into ClientHandshake
This is a minor breaking change to `TransportCredentials`, however
it should not be a problem in practice as not many users are using
custom implementations. In particular, users of `NewTLS` will not
be affected.

This change also replaces the earlier `Timeout` and `Cancel` fields
with a `context.Context`, which is plumbed all the way down from
`grpc.Dial`, laying the ground work for a user-provided context.

Also, support for Go 1.7 is added.
2016-08-01 16:29:56 -04:00
824221d52d add clone to avoid modifying passed-in tls.Config 2016-07-26 21:21:43 -07:00
9a97937ed3 credentials: don't overwrite ServerName in given config
The first endpoint will set the ServerName which will then be used by
the second endpoint, causing the transport to reject the second endpoint
since the server cert won't match the server name.
2016-07-14 11:17:40 -07:00
78e558bbc1 fix Info passes lock by value 2016-06-29 14:08:23 -07:00
74a71a17ac Fix typo. 2016-06-27 20:52:25 -07:00
69487bb54a Address comments 2016-06-09 11:44:26 -07:00
59486d9c17 Rename TransportAuthenticator to TransportCredentials 2016-06-08 11:19:25 -07:00
3ffbd8e030 Rename Credentials to PerRPCCredentials 2016-06-06 17:28:10 -07:00
6404c49192 Make TransportAuthenticator not embed Credentials 2016-06-06 16:24:46 -07:00
76515fa9fd Remove context related functions in credentials 2016-01-06 18:26:33 -08:00
b36c5c6fd9 Expose peer info 2016-01-06 18:20:01 -08:00
a6fe03ae2e credentials.TLSInfo: export State 2015-09-08 14:30:17 -04:00
cf890d694e rename audience 2015-08-28 17:32:25 -07:00
6be470f058 Credentials API and jwtAccess implementation tunning 2015-08-28 16:51:45 -07:00
3111577eb2 fix a comment 2015-08-28 13:24:56 -07:00
87c361b5a5 check transport security when using oauth2-based credentials 2015-08-28 13:19:36 -07:00
f49ac9d0df rename Type() 2015-08-26 13:43:04 -07:00
ef3d58fc04 add test 2015-08-26 13:11:34 -07:00
c0e23d7ef3 make the tests happy 2015-08-26 12:40:24 -07:00
b6d240dcce add comments 2015-08-26 11:34:35 -07:00
125950284c separate auth info from normal metadata 2015-08-26 11:30:43 -07:00