acacode / acacode/swagger-typescript-api

Global security parameter should be overriden by local security parameter

Aperta
#348 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
bug
Lingua principale
TypeScript
Stelle
4.1k
Fork
436
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I have schema with globally set security for all paths. But some of the paths override global security with empty value to disable security. When I generate http client for such schema all method calls have `security: true`, even the methods which overriden value.

Minimum reproduction schema:
```yaml
openapi: 3.0.1

paths:
# Авторизация
/auth/login:
post:
tags: [auth]
security: []

/token/revoke:
post:
tags: [ token ]

security:
- bearerAuth: []
```

**Expected result:**
`auth/login` path should have `secure: false` (because it is overriden) and `token/revoke` should have `secure: true` (as in global parameter)

**Actual result:**
All methods have `secure: true`:
```ts
auth = {
/**
* No description
*
* @tags auth
* @name LoginCreate
* @request POST:/auth/login
* @secure
*/
loginCreate: (params: RequestParams = {}) =>
this.http.request({
path: `/auth/login`,
method: 'POST',
secure: true,
...params,
}),
}
token = {
/**
* No description
*
* @tags token
* @name RevokeCreate
* @request POST:/token/revoke
* @secure
*/
revokeCreate: (params: RequestParams = {}) =>
this.http.request({
path: `/token/revoke`,
method: 'POST',
secure: true,
...params,
}),
}
```

**Possible solution**

Seems like this condition need to be updated:
https://github.com/acacode/swagger-typescript-api/blob/master/src/routes.js#L562-L565

```js
const hasSecurity = security
? !!security.length
: !!(globalSecurity && globalSecurity.length)
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.