Files
swagger-ui/test/e2e-cypress/support/helpers/oauth2-server/model.js
Vladimír Gorej 3e81a4f897 chore(deps-dev): update cypress to v12 (#8889)
This update required changing the configuration
and test directory structure. Some tests needed
to be amended as well to compensate for new
Cypress APIs.
2023-06-07 10:25:32 +02:00

141 lines
2.8 KiB
JavaScript

// from https://github.com/pedroetb/node-oauth2-server-example
let config = {
clients: [{
clientId: "application",
clientSecret: "secret"
}],
confidentialClients: [{
clientId: "confidentialApplication",
clientSecret: "topSecret"
}],
tokens: [],
users: [{
id: "123",
username: "swagger",
password: "password"
}]
}
/**
* Dump the memory storage content (for debug).
*/
let dump = function () {
console.log("clients", config.clients)
console.log("confidentialClients", config.confidentialClients)
console.log("tokens", config.tokens)
console.log("users", config.users)
}
/*
* Methods used by all grant types.
*/
let getAccessToken = function (bearerToken, callback) {
let tokens = config.tokens.filter(function (token) {
return token.accessToken === bearerToken
})
return callback(false, tokens[0])
}
let getClient = function (clientId, clientSecret, callback) {
let clients = config.clients.filter(function (client) {
return client.clientId === clientId && client.clientSecret === clientSecret
})
let confidentialClients = config.confidentialClients.filter(function (client) {
return client.clientId === clientId && client.clientSecret === clientSecret
})
callback(false, clients[0] || confidentialClients[0])
}
let grantTypeAllowed = function (clientId, grantType, callback) {
let clientsSource,
clients = []
if (grantType === "password") {
clientsSource = config.clients
} else if (grantType === "client_credentials") {
clientsSource = config.confidentialClients
}
if (clientsSource) {
clients = clientsSource.filter(function (client) {
return client.clientId === clientId
})
}
callback(false, clients.length)
}
let saveAccessToken = function (accessToken, clientId, expires, user, callback) {
config.tokens.push({
accessToken: accessToken,
expires: expires,
clientId: clientId,
user: user
})
callback(false)
}
/*
* Method used only by password grant type.
*/
let getUser = function (username, password, callback) {
let users = config.users.filter(function (user) {
return user.username === username && user.password === password
})
callback(false, users[0])
}
/*
* Method used only by client_credentials grant type.
*/
let getUserFromClient = function (clientId, clientSecret, callback) {
let clients = config.confidentialClients.filter(function (client) {
return client.clientId === clientId && client.clientSecret === clientSecret
})
let user
if (clients.length) {
user = {
username: clientId
}
}
callback(false, user)
}
/**
* Export model definition object.
*/
module.exports = {
getAccessToken: getAccessToken,
getClient: getClient,
grantTypeAllowed: grantTypeAllowed,
saveAccessToken: saveAccessToken,
getUser: getUser,
getUserFromClient: getUserFromClient
}