29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
import radius from 'radius'
|
|
import { RadiusServer } from '@coreid/radius-server'
|
|
import RadiusClient from '../../models/radius/Client.model.js'
|
|
import CoreIDUserPasswordPacketHandler from './CoreIDUserPasswordPacketHandler.mjs'
|
|
|
|
export default class CoreIDRadiusServer extends RadiusServer {
|
|
|
|
// constructor(options) {
|
|
// super(options)
|
|
// this.packetHandler.packetHandlers.pop()
|
|
// this.packetHandler.packetHandlers.push(new CoreIDUserPasswordPacketHandler(options.authentication, this.logger))
|
|
// console.log(this.packetHandler.packetHandlers)
|
|
// }
|
|
|
|
async decodeMessage(msg) {
|
|
const clients = await RadiusClient.find({ active: true })
|
|
for ( const client of clients ) {
|
|
try {
|
|
const packet = radius.decode({ packet: msg, secret: client.secret })
|
|
packet.secret = client.secret
|
|
return packet
|
|
} catch (e) {
|
|
console.error(e)
|
|
}
|
|
}
|
|
throw new Error('Unable to determine client to decode RADIUS packet: is the client active?')
|
|
}
|
|
}
|