私の最初の悪い言い訳を申し訳ありません。私はドイツの学生で、プログラミングの新しい人です。春のセキュリティ+角2 + SockJS
私はSpring Bootでwebsocketサーバーを少し実装し、Basic Authを使用してSpring Securityでセキュリティを確保しました。フロントエンドには角度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)) }
BLOCKQUOTEしかし、これは私だけのhttp 200応答を与え、セッションか何かを開けませんでした:
は、私のような単一のPOSTリクエストでこれを実行しようとしました。ログイン情報も元のリクエストに入れようとしました。
_self.wsClient.connect( '管理者'、 'パス'、機能(フレーム){...}
はあなたの助けをいただき、ありがとうございます。