def test_radius(identifier, server, secret, user, password, port=1812, description="", dictionary='/etc/privacyidea/dictionary', retries=3, timeout=5): """ This tests a RADIUS server configuration by sending an access request. :param identifier: The identifier or the name of the RADIUSServer definition :type identifier: basestring :param server: The FQDN or IP address of the RADIUS server :type server: basestring :param secret: The RADIUS secret :param user: the username to send :param password: the password to send :param port: the radius port :type port: int :param description: Human readable description of the RADIUS server definition :param dictionary: The RADIUS dictionary :return: The result of the access request """ cryptedSecret = encryptPassword(secret) if len(cryptedSecret) > 255: raise privacyIDEAError(description=_("The RADIUS secret is too long"), id=2234) s = RADIUSServerDB(identifier=identifier, server=server, port=port, secret=cryptedSecret, dictionary=dictionary, retries=retries, timeout=timeout, description=description) return RADIUSServer.request(s, user, password)
def test(): """ Test the RADIUS definition :return: """ param = request.all_data identifier = getParam(param, "identifier", required) server = getParam(param, "server", required) port = int(getParam(param, "port", default=1812)) secret = getParam(param, "secret", required) user = getParam(param, "username", required) password = getParam(param, "password", required) dictionary = getParam(param, "dictionary", default="/etc/privacyidea/dictinoary") s = RADIUSServerDB(identifier=identifier, server=server, port=port, secret=secret, dictionary=dictionary) r = RADIUSServer.request(s, user, password) g.audit_object.log({'success': r > 0, 'info': r}) return send_result(r > 0)
def add_radius(identifier, server, secret, port=1812, description="", dictionary='/etc/privacyidea/dictionary', retries=3, timeout=5): """ This adds a RADIUS server to the RADIUSServer database table. If the "identifier" already exists, the database entry is updated. :param identifier: The identifier or the name of the RADIUSServer definition. As the identifier is unique, providing an identifier will return a list with either one or no radius server :type identifier: basestring :param server: The FQDN or IP address of the RADIUS server :type server: basestring :param secret: The RADIUS secret :param port: the radius port :type port: int :param description: Human readable description of the RADIUS server definition :param dictionary: The RADIUS dictionary :return: The Id of the database object """ cryptedSecret = encryptPassword(secret) if len(cryptedSecret) > 255: raise privacyIDEAError(description=_("The RADIUS secret is too long"), id=2234) r = RADIUSServerDB(identifier=identifier, server=server, port=port, secret=cryptedSecret, description=description, dictionary=dictionary, retries=retries, timeout=timeout).save() return r