Merge pull request #1375 from 4Science/CST-4767

[CST-4767] Password are not properly url encoded at login
This commit is contained in:
Tim Donohue
2021-10-26 08:41:20 -05:00
committed by GitHub
3 changed files with 1 additions and 22 deletions

View File

@@ -42,7 +42,6 @@ import {
UnsetUserAsIdleAction UnsetUserAsIdleAction
} from './auth.actions'; } from './auth.actions';
import { NativeWindowRef, NativeWindowService } from '../services/window.service'; import { NativeWindowRef, NativeWindowService } from '../services/window.service';
import { Base64EncodeUrl } from '../../shared/utils/encode-decode.util';
import { RouteService } from '../services/route.service'; import { RouteService } from '../services/route.service';
import { EPersonDataService } from '../eperson/eperson-data.service'; import { EPersonDataService } from '../eperson/eperson-data.service';
import { getAllSucceededRemoteDataPayload } from '../shared/operators'; import { getAllSucceededRemoteDataPayload } from '../shared/operators';
@@ -103,7 +102,7 @@ export class AuthService {
*/ */
public authenticate(user: string, password: string): Observable<AuthStatus> { public authenticate(user: string, password: string): Observable<AuthStatus> {
// Attempt authenticating the user using the supplied credentials. // Attempt authenticating the user using the supplied credentials.
const body = (`password=${Base64EncodeUrl(password)}&user=${Base64EncodeUrl(user)}`); const body = (`password=${encodeURIComponent(password)}&user=${encodeURIComponent(user)}`);
const options: HttpOptions = Object.create({}); const options: HttpOptions = Object.create({});
let headers = new HttpHeaders(); let headers = new HttpHeaders();
headers = headers.append('Content-Type', 'application/x-www-form-urlencoded'); headers = headers.append('Content-Type', 'application/x-www-form-urlencoded');

View File

@@ -1,10 +0,0 @@
import { Base64EncodeUrl } from './encode-decode.util';
describe('Encode/Decode Utils', () => {
const strng = '+string+/=t-';
const encodedStrng = '%2Bstring%2B%2F%3Dt-';
it('should return encoded string', () => {
expect(Base64EncodeUrl(strng)).toBe(encodedStrng);
});
});

View File

@@ -1,10 +0,0 @@
/**
* use this to make a Base64 encoded string URL friendly,
* i.e. '+' and '/' are replaced with special percent-encoded hexadecimal sequences
*
* @param {String} str the encoded string
* @returns {String} the URL friendly encoded String
*/
export function Base64EncodeUrl(str): string {
return str.replace(/\+/g, '%2B').replace(/\//g, '%2F').replace(/\=/g, '%3D');
}