【问题标题】:Rest api is not working from angular but its fine when call from post manRest api不能从角度工作,但在邮递员调用时它很好
【发布时间】:2020-09-27 06:38:30
【问题描述】:

当我在控制器中添加@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')") 并从角度调用时,它不起作用,但从邮递员调用时它很好。

@GetMapping("/getAllOrgniz")
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
public ResponseEntity<?> allOrganization () {
    return organizationService.getAllOrganization();
}

来自 Angular:

getAllOrganizationList ():void {
    this.organaigationService.getAll().subscribe(data=>{
        this.organizations = data;
    });
 }

组织服务:

public getAll() {
     return this.httpService.getWithToken(this.getAllUrl);
}

HttpService:

getWithToken (url:any): Observable<any> {
    let token = this.tokenStoreService.getToken();
    console.log(token);
    return this.http.get<any>(this.URL+url,this.httpBearerHeader);
}

Spring boot 控制台显示如下

this:com.crm.security.jwt.AuthEntryPointJwt:未经授权的错误: 访问此资源需要完全身份验证

角度日志:

core.js:6014 错误 HttpErrorResponse {标头:HttpHeaders,状态: 401,状态文本:“确定”,网址: “http://localhost:8085/api/organization/getAllOrgniz”,好的: 假,...}标头:HttpHeaders {normalizedNames:Map(0),lazyUpdate: 空,lazyInit:ƒ}状态:401statusText:“OK”url: "http://localhost:8085/api/organization/getAllOrgniz"ok: 假名: “HttpErrorResponse”消息:“Http 失败响应 http://localhost:8085/api/organization/getAllOrgniz: 401 OK"错误: {时间戳:“2020-06-08T10:14:19.917+00:00”,状态:401,错误: “未经授权”,跟踪: “org.springframework.security.access.AccessDeniedEx…va:61)↵ 在 java.lang.Thread.run(Thread.java:748)↵”,消息:“错误: 未经授权”,......

【问题讨论】:

  • 比较Angular和Postman发送的请求,有什么区别?浏览器控制台中是否记录了任何错误?
  • 添加角度日志
  • 问题一:“比较一下Angular和Postman发送的请求,有什么区别?”。另外,this.httpBearerHeader 是什么?
  • httpBearerHeader = { headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': 'Bearer' + this.tokenStoreService.getToken() }) };跨度>
  • 您使用 Angular 的 API 调用未经过身份验证,请尝试将您的凭据与您的请求一起发送

标签: angular spring-boot spring-security


【解决方案1】:

在“Bearer”之后添加空格,它应该可以工作:

httpBearerHeader = { headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.tokenStoreService.getToken() }) }

【讨论】:

  • @Nahid 快乐编码 :)
猜你喜欢
  • 1970-01-01
  • 2020-08-18
  • 2019-05-27
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多