mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-22 10:06:40 +00:00
Merge pull request #1066 from MediaBrowser/master
create user info from exchange token
This commit is contained in:
@@ -1125,7 +1125,7 @@ namespace MediaBrowser.Server.Implementations.Connect
|
||||
url += "?serverId=" + ConnectServerId;
|
||||
url += "&supporterKey=" + _securityManager.SupporterKey;
|
||||
url += "&userId=" + id;
|
||||
|
||||
|
||||
var options = new HttpRequestOptions
|
||||
{
|
||||
Url = url,
|
||||
@@ -1244,6 +1244,16 @@ namespace MediaBrowser.Server.Implementations.Connect
|
||||
.FirstOrDefault(i => string.Equals(i.ConnectUserId, connectUserId, StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
public User GetUserFromExchangeToken(string token)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(token))
|
||||
{
|
||||
throw new ArgumentNullException("token");
|
||||
}
|
||||
|
||||
return _userManager.Users.FirstOrDefault(u => string.Equals(token, u.ConnectAccessKey, StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
public bool IsAuthorizationTokenValid(string token)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(token))
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.Net;
|
||||
using MediaBrowser.Controller.Connect;
|
||||
using MediaBrowser.Controller.Net;
|
||||
using MediaBrowser.Controller.Security;
|
||||
using ServiceStack.Web;
|
||||
using System;
|
||||
@@ -10,10 +11,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
|
||||
public class AuthorizationContext : IAuthorizationContext
|
||||
{
|
||||
private readonly IAuthenticationRepository _authRepo;
|
||||
private readonly IConnectManager _connectManager;
|
||||
|
||||
public AuthorizationContext(IAuthenticationRepository authRepo)
|
||||
public AuthorizationContext(IAuthenticationRepository authRepo, IConnectManager connectManager)
|
||||
{
|
||||
_authRepo = authRepo;
|
||||
_connectManager = connectManager;
|
||||
}
|
||||
|
||||
public AuthorizationInfo GetAuthorizationInfo(object requestContext)
|
||||
@@ -144,6 +147,14 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
|
||||
info.DeviceId = tokenInfo.DeviceId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var user = _connectManager.GetUserFromExchangeToken(token);
|
||||
if (user != null)
|
||||
{
|
||||
info.UserId = user.Id.ToString("N");
|
||||
}
|
||||
}
|
||||
httpReq.Items["OriginalAuthenticationInfo"] = tokenInfo;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user