I am trying to create a spring boot service using TinyRadius library. Consumers will call this service passing UserName & Password and I need to connect to the radius server for authentication. I am using IntelliJ for development. I have included below TinyRadius gradle dependency in gradle file
compile(group: 'org.tinyradius', name: 'tinyradius', version: '1.1.0')
but when I start my application inside IntelliJ it throws below error. Removing the above dependency and commenting out Radius Server code Tomcat inside IntelliJ starts but as soon as I have tinyradius dependency it fails to start.
[ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat
initialized with port(s): 8081 (http) [ main]
o.apache.catalina.core.StandardService : Starting service [Tomcat] [
main] org.apache.catalina.core.StandardEngine : Starting Servlet
engine: [Apache Tomcat/9.0.38] [ main]
org.apache.catalina.core.ContainerBase : A child container failed
during start
java.util.concurrent.ExecutionException:
org.apache.catalina.LifecycleException: Failed to start component
[NonLoginAuthenticator[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122) at
java.util.concurrent.FutureTask.get(FutureTask.java:192) at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at
java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486) at
org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123)
at
org.springframework.boot.web.embedded.tomcat.TomcatWebServer.(TomcatWebServer.java:104)
at
org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:437)
at
org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:191)
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:178)
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:158)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545)
at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
Caused by: org.apache.catalina.LifecycleException: Failed to start
component
[NonLoginAuthenticator[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]]
at
org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at
org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:176)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5056)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at
java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
... 30 common frames omitted Caused by: java.lang.NoSuchMethodError:
javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
at
org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1342)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 40 common frames omitted
Here is a sample code that I have in the controller so far. I am just trying to see if the server starts up and then can proceed. Any help is appreciated on how to implement this inside spring boot webservice
import org.tinyradius.packet.AccessRequest;
import org.tinyradius.packet.RadiusPacket;
import org.tinyradius.util.RadiusClient;
public void connect() throws Exception{
RadiusClient rc = new RadiusClient("radiusserver", "secretcode");
rc.setAuthPort(9999);
rc.setRetryCount(4);
rc.setSocketTimeout(30000);
AccessRequest ar = new AccessRequest("name", "pwd");
RadiusPacket response = rc.authenticate(ar);
}
question from:
https://stackoverflow.com/questions/65912995/using-tinyradius-in-spring-boot-service-failing-to-start-tomcat 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…