Angular6-SpringBoot基本身份验证

时间:2020-09-26 17:55:38

标签: typescript angular6

我已安装nvm 1.1.7Node.js版本8.11.1。

现在我已经安装了angular@cli版本6.1.3,并使用ng new创建了一个Angular项目。

我正在尝试将Basic Authentication作为服务器来进行SpringBoot。我遵循了大量指南,但是无法在HttpHeader内设置身份验证参数。

如果我写了:

var headers_object = new HttpHeaders();
headers_object.set('Content-Type', 'application/json');
headers_object.set('Authorization', 'Basic ' + btoa('guest:guest1234'));

然后:

console.log(headers_object.get('Content-Type'));

它打印null。如果我写了:

const httpOptions = {
  headers: new HttpHeaders({'Content-Type': 'application/json'})
};
console.log(httpOptions.headers.get('Content-Type'));

它打印application/json。如果我检查HttpHeaders代码,则可以清楚地看到set方法。

在我的package.json中,看到:

"@angular/animations": "^6.1.0",
"@angular/common": "^6.1.0",
"@angular/compiler": "^6.1.0",
"@angular/core": "^6.1.0",
"@angular/forms": "^6.1.0",
"@angular/http": "^6.1.0",
"@angular/platform-browser": "^6.1.0",
"@angular/platform-browser-dynamic": "^6.1.0",
"@angular/router": "^6.1.0",
"core-js": "^2.5.4",
"rxjs": "6.0.0",
"zone.js": "~0.8.26"

怎么了?

--------------------------更新-------------------- ---

我设法发送(我认为..)标题参数如下:

let httpHeaders = new HttpHeaders()
          .set('Authorization', 'Basic ' + btoa('guest:guest1234'))
          .set('Content-Type', 'application/json'); 

console.log(httpHeaders.get('Content-Type')); // print correct
const httpOptions = {
  headers: httpHeaders
};
console.log(httpOptions.headers.get('Content-Type')); // print correct

return this.http.get('http://localhost:8080/hello', httpOptions); // return 401!!

我真是为这个愚蠢的事情而发疯... PS:Cors被Chrome扩展程序禁用了。.并且有了Postman,我可以到达服务器了。

1 个答案:

答案 0 :(得分:0)

解决了..问题是服务器端..我忘记了:

.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()

Spring Security Configuration类内部。无论如何,即使没有上述代码,我仍然可以通过Postman访问服务器。

var headers_object = new HttpHeaders();
headers_object.set('Content-Type', 'application/json');
headers_object.set('Authorization', 'Basic ' + btoa('guest:guest1234'));
console.log(headers_object.get('Content-Type')); // printing null

我绝对不是Angular的新手,我将在Typescript 2.9文档中进行搜索。

非常感谢任何帮助(或文档提示)!