Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
627a9a9c
Commit
627a9a9c
authored
May 10, 2016
by
Gabriel Mazetto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Codestyle changes
parent
862e70ea
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
8 additions
and
12 deletions
+8
-12
app/controllers/sessions_controller.rb
app/controllers/sessions_controller.rb
+1
-1
app/models/geo_node.rb
app/models/geo_node.rb
+1
-1
lib/gitlab/geo/oauth_session.rb
lib/gitlab/geo/oauth_session.rb
+3
-3
spec/lib/gitlab/geo/oauth_session_spec.rb
spec/lib/gitlab/geo/oauth_session_spec.rb
+3
-7
No files found.
app/controllers/sessions_controller.rb
View file @
627a9a9c
...
...
@@ -115,7 +115,7 @@ class SessionsController < Devise::SessionsController
return
if
signed_in?
||
!
Gitlab
::
Geo
.
secondary?
oauth
=
Gitlab
::
Geo
::
OauthSession
.
new
# share full url with primary node by
shared session
# share full url with primary node by
oauth state
user_return_to
=
URI
.
join
(
root_url
,
session
[
:user_return_to
].
to_s
).
to_s
oauth
.
return_to
=
@redirect_to
||
user_return_to
...
...
app/models/geo_node.rb
View file @
627a9a9c
...
...
@@ -71,7 +71,7 @@ class GeoNode < ActiveRecord::Base
def
oauth_logout_url
(
access_token
)
logout_uri
=
URI
.
join
(
uri
,
"
#{
uri
.
path
}
/"
,
'oauth/geo/logout'
)
logout_uri
.
query
=
"state=
#{
access_token
}
"
logout_uri
.
query
=
"state=
#{
access_token
}
"
logout_uri
.
to_s
end
...
...
lib/gitlab/geo/oauth_session.rb
View file @
627a9a9c
...
...
@@ -19,7 +19,7 @@ module Gitlab
return
unless
return_to
hmac
=
generate_oauth_hmac
(
oauth_salt
,
return_to
)
"
#{
oauth_salt
}
:
#{
hmac
}
:
#{
return_to
}
"
self
.
state
=
"
#{
oauth_salt
}
:
#{
hmac
}
:
#{
return_to
}
"
end
def
generate_logout_state
...
...
@@ -27,7 +27,7 @@ module Gitlab
cipher
=
logout_token_cipher
(
oauth_salt
,
:encrypt
)
encrypted
=
cipher
.
update
(
access_token
)
+
cipher
.
final
"
#{
oauth_salt
}
:
#{
Base64
.
urlsafe_encode64
(
encrypted
)
}
"
self
.
state
=
"
#{
oauth_salt
}
:
#{
Base64
.
urlsafe_encode64
(
encrypted
)
}
"
end
def
extract_logout_token
...
...
@@ -61,7 +61,7 @@ module Gitlab
def
generate_oauth_hmac
(
salt
,
return_to
)
return
false
unless
return_to
digest
=
OpenSSL
::
Digest
.
new
(
'sha256'
)
key
=
Gitlab
::
Application
.
secrets
.
secret_key_base
+
salt
OpenSSL
::
HMAC
.
hexdigest
(
digest
,
key
,
return_to
)
...
...
spec/lib/gitlab/geo/oauth_session_spec.rb
View file @
627a9a9c
...
...
@@ -37,8 +37,7 @@ describe Gitlab::Geo::OauthSession do
describe
'#generate_oauth_state'
do
it
'returns nil when return_to is not present'
do
state
=
subject
.
generate_oauth_state
expect
(
state
).
to
be_nil
expect
(
subject
.
generate_oauth_state
).
to
be_nil
end
context
'when return_to is present'
do
...
...
@@ -62,14 +61,12 @@ describe Gitlab::Geo::OauthSession do
end
describe
'#generate_logout_state'
do
subject
{
described_class
.
new
(
access_token:
access_token
)
}
it
'returns nil when access_token is not defined'
do
expect
(
described_class
.
new
.
generate_logout_state
).
to
be_nil
end
it
'returns a string with salt and encrypted access token colon separated'
do
state
=
subject
.
generate_logout_state
state
=
described_class
.
new
(
access_token:
access_token
)
.
generate_logout_state
expect
(
state
).
to
be_a
String
expect
(
state
).
not_to
be_blank
...
...
@@ -87,8 +84,7 @@ describe Gitlab::Geo::OauthSession do
end
it
'encrypted access token is recoverable'
do
state
=
subject
.
generate_logout_state
subject
.
state
=
state
subject
.
generate_logout_state
access_token
=
subject
.
extract_logout_token
expect
(
access_token
).
to
eq
access_token
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment