4141use OCP \IRequest ;
4242use OCP \IUser ;
4343use OCP \IUserManager ;
44+ use OCP \Security \ICrypto ;
4445use OCP \Security \ISecureRandom ;
4546
4647class SettingsController extends Controller {
47- /** @var ClientMapper */
48- private $ clientMapper ;
49- /** @var ISecureRandom */
50- private $ secureRandom ;
51- /** @var AccessTokenMapper */
52- private $ accessTokenMapper ;
53- /** @var IL10N */
54- private $ l ;
55- /** @var IAuthTokenProvider */
56- private $ tokenProvider ;
57- /**
58- * @var IUserManager
59- */
60- private $ userManager ;
48+
6149 public const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ' ;
6250
63- public function __construct (string $ appName ,
64- IRequest $ request ,
65- ClientMapper $ clientMapper ,
66- ISecureRandom $ secureRandom ,
67- AccessTokenMapper $ accessTokenMapper ,
68- IL10N $ l ,
69- IAuthTokenProvider $ tokenProvider ,
70- IUserManager $ userManager
51+ public function __construct (
52+ string $ appName ,
53+ IRequest $ request ,
54+ private ClientMapper $ clientMapper ,
55+ private ISecureRandom $ secureRandom ,
56+ private AccessTokenMapper $ accessTokenMapper ,
57+ private IL10N $ l ,
58+ private IAuthTokenProvider $ tokenProvider ,
59+ private IUserManager $ userManager ,
60+ private ICrypto $ crypto
7161 ) {
7262 parent ::__construct ($ appName , $ request );
73- $ this ->secureRandom = $ secureRandom ;
74- $ this ->clientMapper = $ clientMapper ;
75- $ this ->accessTokenMapper = $ accessTokenMapper ;
76- $ this ->l = $ l ;
77- $ this ->tokenProvider = $ tokenProvider ;
78- $ this ->userManager = $ userManager ;
7963 }
8064
8165 public function addClient (string $ name ,
@@ -87,7 +71,9 @@ public function addClient(string $name,
8771 $ client = new Client ();
8872 $ client ->setName ($ name );
8973 $ client ->setRedirectUri ($ redirectUri );
90- $ client ->setSecret ($ this ->secureRandom ->generate (64 , self ::validChars));
74+ $ secret = $ this ->secureRandom ->generate (64 , self ::validChars);
75+ $ encryptedSecret = $ this ->crypto ->encrypt ($ secret );
76+ $ client ->setSecret ($ encryptedSecret );
9177 $ client ->setClientIdentifier ($ this ->secureRandom ->generate (64 , self ::validChars));
9278 $ client = $ this ->clientMapper ->insert ($ client );
9379
@@ -96,7 +82,7 @@ public function addClient(string $name,
9682 'name ' => $ client ->getName (),
9783 'redirectUri ' => $ client ->getRedirectUri (),
9884 'clientId ' => $ client ->getClientIdentifier (),
99- 'clientSecret ' => $ client -> getSecret () ,
85+ 'clientSecret ' => $ secret ,
10086 ];
10187
10288 return new JSONResponse ($ result );
0 commit comments