import { UserPasswordPacketHandler } from '@coreid/radius-server/dist/radius/handler/UserPasswordPacketHandler.js' export default class CoreIDUserPasswordPacketHandler extends UserPasswordPacketHandler { async handlePacket(packet) { console.log('coreid user password packet handler handlePacket', packet) const username = packet.attributes['User-Name']; let password = packet.attributes['User-Password']; if (Buffer.isBuffer(password) && password.indexOf(0x00) > 0) { // check if there is a 0x00 in it, and trim it from there password = password.slice(0, password.indexOf(0x00)); } if (!username || !password) { // params missing, this handler cannot continue... return {}; } this.logger.debug('username', username, username.toString()); this.logger.debug('token', password, password.toString()); console.log('client', packet.__coreid_client) const authenticated = await this.authentication.authenticate( username.toString(), password.toString() ); if (authenticated) { // success return { code: 'Access-Accept', attributes: [['User-Name', username]], }; } // Failed return { code: 'Access-Reject', }; } }