Size: a a a

Scala User Group

2020 November 12

Oℕ

Oleg ℕizhnik in Scala User Group
Sergey Kucherenko
наберите в канале ponv /get межпруф, пожалуйста.
Олег где-то сравнительно недавно компактно так ругал акторы, сейчас, может, найду, чтобы не писать.
источник

SK

Sergey Kucherenko in Scala User Group
теперь представьте, что вы стали использовать корутины, которые классические, с кооперативной многозадачностью
источник

SK

Sergey Kucherenko in Scala User Group
исполняется ваш код по-прежнему на одном системном треде, но вы уже пишете код в модели с конкурентностью
источник

SK

Sergey Kucherenko in Scala User Group
в этом смысле писать код в модели акторов не надо, такой был у меня аргумент.
источник

TT

Taika Tytto in Scala User Group
Ну вот теперь понятна критика! Спасибо
источник

TT

Taika Tytto in Scala User Group
Sergey Kucherenko
наберите в канале ponv /get межпруф, пожалуйста.
Олег где-то сравнительно недавно компактно так ругал акторы, сейчас, может, найду, чтобы не писать.
Там была мина, но кажется я вас понял, спасибо!
источник

SK

Sergey Kucherenko in Scala User Group
где-то было лучше, но что-то не могу найти
источник

AJ

Aibek Jaksybaev in Scala User Group
using Microsoft.IdentityModel.Tokens;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;

namespace PRGSERVICES.AUTH.CONNECTOR.Services
{
   public class ConnectorService
   {
       public Task<string> GetToken(User user, ConnectorSettings connectorSettings)
       {
           // authentication successful so generate jwt token
           var tokenHandler = new JwtSecurityTokenHandler();
           var signKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.SignKey));
           var creds = new SigningCredentials(signKey, SecurityAlgorithms.HmacSha256);
           var encKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.EncKey));
           var encryptingCredentials = new EncryptingCredentials(encKey, JwtConstants.DirectKeyUseAlg, SecurityAlgorithms.Aes128CbcHmacSha256);

           var tokenDescriptor = new SecurityTokenDescriptor
           {
               Subject = new ClaimsIdentity(new Claim[]
               {
                   new Claim("UserModel", System.Text.Json.JsonSerializer.Serialize(user))
               }),
               Issuer = $"prg-auth-connector-{connectorSettings.Name}",
               Expires = DateTime.UtcNow.AddDays(7),

               EncryptingCredentials = encryptingCredentials,
               SigningCredentials = creds
           };
           var token = tokenHandler.CreateToken(tokenDescriptor);
           string tokenString = tokenHandler.WriteToken(token);

           return Task.FromResult(tokenString);
       }
   }
}


   public class ConnectorSettings
{
   public string SignKey { get; set; }
   public string EncKey { get; set; }
   public string Name { get; set; }
   public string AUTH { get; set; }
   public bool AlwaysSync { get; set; }
}


//Данную модель пользователя вам необходимо будет заполнять с авторизационного сервера OKTA, и передавать на авторизационный сервер
public class User
{
   public Guid ID { get; set; }  //** Идентификатор пользователя который не должен меняться, так как по нему система будет понимать этот пользователь уже есть в системе либо создать нового.
       public string PN { get; set; } //Phone Number


   public string EM { get; set; } //** Email
   public string FN { get; set; } //** Full Name
   public string PE { get; set; }//PhoneNumberVN
   public string MPE { get; set; }//PhoneNumber


   public List<TokenGroupDTO> GS { get; set; } //Группы пользователей
}

public class TokenGroupDTO
{
   public Guid ID { get; set; }
   public string GN { get; set; }
}


всем привет, только начинаю изучать скала не подскажете как можно этот кусок кода на C# написать на scala, заранее спасибо)
источник

AJ

Aibek Jaksybaev in Scala User Group
вот эта часть особенно не понятна
var signKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.SignKey));
var creds = new SigningCredentials(signKey, SecurityAlgorithms.HmacSha256);
var encKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.EncKey));
var encryptingCredentials = new EncryptingCredentials(encKey, JwtConstants.DirectKeyUseAlg, SecurityAlgorithms.Aes128CbcHmacSha256);

не доконца понимаю что происходит под капотом
источник

AD

Apache DOG™ in Scala User Group
Aibek Jaksybaev
вот эта часть особенно не понятна
var signKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.SignKey));
var creds = new SigningCredentials(signKey, SecurityAlgorithms.HmacSha256);
var encKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(connectorSettings.EncKey));
var encryptingCredentials = new EncryptingCredentials(encKey, JwtConstants.DirectKeyUseAlg, SecurityAlgorithms.Aes128CbcHmacSha256);

не доконца понимаю что происходит под капотом
это кухня для работы с jwt. Подобная есть где-то например в tsec
источник

AD

Apache DOG™ in Scala User Group
источник

AD

Apache DOG™ in Scala User Group
источник

AJ

Aibek Jaksybaev in Scala User Group
в sbt пытаюсь подключить выдает ошибку
not found: https://repo1.maven.org/maven2/io/github/jmcardon/tsec-mac_2.13/0.0.1-M11/tsec-mac_2.13-0.0.1-M11.pom
источник

GP

Grigory Pomadchin in Scala User Group
Aibek Jaksybaev
в sbt пытаюсь подключить выдает ошибку
not found: https://repo1.maven.org/maven2/io/github/jmcardon/tsec-mac_2.13/0.0.1-M11/tsec-mac_2.13-0.0.1-M11.pom
0.2.1 версия нужна
источник

AJ

Aibek Jaksybaev in Scala User Group
такая же ошибка (
not found: https://repo1.maven.org/maven2/io/github/jmcardon/tsec-libsodium_2.13/0.2.1/tsec-libsodium_2.13-0.2.1.pom
источник

GP

Grigory Pomadchin in Scala User Group
Aibek Jaksybaev
такая же ошибка (
not found: https://repo1.maven.org/maven2/io/github/jmcardon/tsec-libsodium_2.13/0.2.1/tsec-libsodium_2.13-0.2.1.pom
Удали эту зависимость
источник

GP

Grigory Pomadchin in Scala User Group
ее нету
источник

GP

Grigory Pomadchin in Scala User Group
ошибка другая если присмотришься
источник

GP

Grigory Pomadchin in Scala User Group
откуда ты эти доисторические версии взял
источник

AJ

Aibek Jaksybaev in Scala User Group
с доки)
источник