죄송합니다. 처음에는 나쁜 언어로되어 있습니다. 나는 독일에서 온 학생이고 프로그래밍에서 새로운 사람입니다.스프링 보안 + 각도 2 + SockJS
스프링 부트로 약간의 웹 소켓 서버를 구현하고 기본 인증을 사용하여 스프링 보안으로 보안을 설정했습니다. 프런트 엔드에는 각도 2가 사용됩니다. websocket에 연결하기 위해 다음 솔루션을 구현했습니다. 이 기능은 브라우저가 사용자 이름과 암호를 입력을 열 수 있도록 호출
* Connects to a websocket server. * @param {string} url The url of the WS Server * @param {string} channel The channel to subscribe * @return {boolean} connection status */ public connect(url: string, channel: string): boolean { console.group('WebSocketService: Welcome to the connect function.'); console.log('Connects to', url); console.log('Channel is', channel); let _self = this; let socket = new SockJS(url);
_self.wsClient = Stomp.over(socket);
_self.wsClient.connect({}, function(frame) {
_self.setConnected(true);
console.log('Connected: ', frame);
_self.wsClient.subscribe(channel, function(greeting) {
console.log(greeting);
_self.subjects[channel].next(greeting);
});
});
console.groupEnd();
return true;
}
. 이제 사용자 이름/암호를 다시 입력 할 필요없이 서버에 연결하고 서버와의 연결을 끊을 수 있습니다.
코드에서 로그인 정보를 사용하여 브라우저 입력 창을 어떻게 바꿀 수 있습니까?
private test2(){ let username : string = 'admin'; let password : string = 'pass'; let headers = new Headers(); headers.append("Authorization", "Basic " + btoa(username + ":" + password)); headers.append("Content-Type", "application/x-www-form-urlencoded"); console.log('Test beginnt'); return this._http.get('http://localhost:8080/gs-guide-websocket', {headers: headers}).map(res=> console.log(res)) }
인용문 그러나 이것은 나에게 단지 HTTP 200 응답을 제공하고 세션 또는 뭔가를 열지 않았다
내가 좋아하는 하나의 POST 요청하여이 작업을 수행하기 위해 노력했다.로그인 정보도 원래 요청에 넣으려고했습니다.
이_self.wsClient.connect ('관리자', '패스', 기능 (프레임) {...}
당신의 도움에 감사드립니다.