From 7ae2df139027e39541ce92fcc5a204fea1dd3a37 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 15 三月 2021 17:49:30 +0800 Subject: [PATCH] update 使用hutool 重写 UserAgent --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java | 7 pom.xml | 664 +++++++++++++++++++++++++++---------------------------- ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java | 7 3 files changed, 336 insertions(+), 342 deletions(-) diff --git a/pom.xml b/pom.xml index 58f0280..5dc722d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,337 +1,329 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi</artifactId> - <version>3.4.0</version> - - <name>ruoyi</name> - <url>http://www.ruoyi.vip</url> - <description>鑻ヤ緷绠$悊绯荤粺</description> - - <properties> - <ruoyi.version>3.4.0</ruoyi.version> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>1.8</java.version> - <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> - <druid.version>1.2.4</druid.version> - <bitwalker.version>1.21</bitwalker.version> - <swagger.version>2.9.2</swagger.version> - <pagehelper.boot.version>1.3.0</pagehelper.boot.version> - <fastjson.version>1.2.75</fastjson.version> - <oshi.version>5.6.0</oshi.version> - <jna.version>5.7.0</jna.version> - <commons.io.version>2.5</commons.io.version> - <commons.fileupload.version>1.3.3</commons.fileupload.version> - <commons.collections.version>3.2.2</commons.collections.version> - <poi.version>4.1.2</poi.version> - <velocity.version>1.7</velocity.version> - <jwt.version>0.9.1</jwt.version> - <mybatis-plus.version>3.4.2</mybatis-plus.version> - <hutool.version>5.5.8</hutool.version> - <feign.version>2.2.6.RELEASE</feign.version> - <feign-okhttp.version>11.0</feign-okhttp.version> - </properties> - - <!-- 渚濊禆澹版槑 --> - <dependencyManagement> - <dependencies> - - <!-- SpringBoot鐨勪緷璧栭厤缃�--> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-dependencies</artifactId> - <version>2.2.13.RELEASE</version> - <type>pom</type> - <scope>import</scope> - </dependency> - - <!--闃块噷鏁版嵁搴撹繛鎺ユ睜 --> - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>druid-spring-boot-starter</artifactId> - <version>${druid.version}</version> - </dependency> - - <!-- 瑙f瀽瀹㈡埛绔搷浣滅郴缁熴�佹祻瑙堝櫒绛� --> - <dependency> - <groupId>eu.bitwalker</groupId> - <artifactId>UserAgentUtils</artifactId> - <version>${bitwalker.version}</version> - </dependency> - - <!-- pagehelper 鍒嗛〉鎻掍欢 --> - <dependency> - <groupId>com.github.pagehelper</groupId> - <artifactId>pagehelper-spring-boot-starter</artifactId> - <version>${pagehelper.boot.version}</version> - <exclusions> - <exclusion> - <groupId>org.mybatis</groupId> - <artifactId>mybatis</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- 鑾峰彇绯荤粺淇℃伅 --> - <dependency> - <groupId>com.github.oshi</groupId> - <artifactId>oshi-core</artifactId> - <version>${oshi.version}</version> - </dependency> - - <dependency> - <groupId>net.java.dev.jna</groupId> - <artifactId>jna</artifactId> - <version>${jna.version}</version> - </dependency> - - <dependency> - <groupId>net.java.dev.jna</groupId> - <artifactId>jna-platform</artifactId> - <version>${jna.version}</version> - </dependency> - - <!-- swagger2--> - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-swagger2</artifactId> - <version>${swagger.version}</version> - <exclusions> - <exclusion> - <groupId>io.swagger</groupId> - <artifactId>swagger-annotations</artifactId> - </exclusion> - <exclusion> - <groupId>io.swagger</groupId> - <artifactId>swagger-models</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- swagger2-UI--> - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-swagger-ui</artifactId> - <version>${swagger.version}</version> - </dependency> - - <!--io甯哥敤宸ュ叿绫� --> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>${commons.io.version}</version> - </dependency> - - <!--鏂囦欢涓婁紶宸ュ叿绫� --> - <dependency> - <groupId>commons-fileupload</groupId> - <artifactId>commons-fileupload</artifactId> - <version>${commons.fileupload.version}</version> - </dependency> - - <!-- excel宸ュ叿 --> - <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-ooxml</artifactId> - <version>${poi.version}</version> - </dependency> - - <!--velocity浠g爜鐢熸垚浣跨敤妯℃澘 --> - <dependency> - <groupId>org.apache.velocity</groupId> - <artifactId>velocity</artifactId> - <version>${velocity.version}</version> - <exclusions> - <exclusion> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- collections宸ュ叿绫� --> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>${commons.collections.version}</version> - </dependency> - - <!-- 闃块噷JSON瑙f瀽鍣� --> - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>fastjson</artifactId> - <version>${fastjson.version}</version> - </dependency> - - <!--Token鐢熸垚涓庤В鏋�--> - <dependency> - <groupId>io.jsonwebtoken</groupId> - <artifactId>jjwt</artifactId> - <version>${jwt.version}</version> - </dependency> - - <dependency> - <groupId>com.baomidou</groupId> - <artifactId>mybatis-plus-boot-starter</artifactId> - <version>${mybatis-plus.version}</version> - </dependency> - <dependency> - <groupId>com.baomidou</groupId> - <artifactId>mybatis-plus-extension</artifactId> - <version>${mybatis-plus.version}</version> - </dependency> - <dependency> - <groupId>cn.hutool</groupId> - <artifactId>hutool-all</artifactId> - <version>${hutool.version}</version> - </dependency> - - <dependency> - <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-starter-openfeign</artifactId> - <version>${feign.version}</version> - </dependency> - - <dependency> - <groupId>io.github.openfeign</groupId> - <artifactId>feign-okhttp</artifactId> - <version>${feign-okhttp.version}</version> - </dependency> - - <!-- 瀹氭椂浠诲姟--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-quartz</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - <!-- 浠g爜鐢熸垚--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-generator</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - <!-- 鏍稿績妯″潡--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-framework</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - <!-- 绯荤粺妯″潡--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-system</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - <!-- 閫氱敤宸ュ叿--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-common</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - <!-- demo妯″潡 --> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-demo</artifactId> - <version>${ruoyi.version}</version> - </dependency> - - </dependencies> - </dependencyManagement> - - <modules> - <module>ruoyi-admin</module> - <module>ruoyi-framework</module> - <module>ruoyi-system</module> - <module>ruoyi-quartz</module> - <module>ruoyi-generator</module> - <module>ruoyi-common</module> - <module>ruoyi-demo</module> - </modules> - <packaging>pom</packaging> - - - <dependencies> - - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.1</version> - <configuration> - <source>${java.version}</source> - <target>${java.version}</target> - <encoding>${project.build.sourceEncoding}</encoding> - </configuration> - </plugin> - </plugins> - <resources> - <resource> - <!--鎵撳寘璇ョ洰褰曚笅鐨� application.yml --> - <directory>src/main/resources</directory> - <!-- 鍚敤杩囨护 鍗宠璧勬簮涓殑鍙橀噺灏嗕細琚繃婊ゅ櫒涓殑鍊兼浛鎹� --> - <filtering>true</filtering> - </resource> - </resources> - </build> - - <repositories> - <repository> - <id>public</id> - <name>aliyun nexus</name> - <url>http://maven.aliyun.com/nexus/content/groups/public/</url> - <releases> - <enabled>true</enabled> - </releases> - </repository> - </repositories> - - <pluginRepositories> - <pluginRepository> - <id>public</id> - <name>aliyun nexus</name> - <url>http://maven.aliyun.com/nexus/content/groups/public/</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>false</enabled> - </snapshots> - </pluginRepository> - </pluginRepositories> - - <profiles> - <profile> - <id>dev</id> - <properties> - <!-- 鐜鏍囪瘑锛岄渶瑕佷笌閰嶇疆鏂囦欢鐨勫悕绉扮浉瀵瑰簲 --> - <profiles.active>dev</profiles.active> - <logging.level>debug</logging.level> - </properties> - <activation> - <!-- 榛樿鐜 --> - <activeByDefault>true</activeByDefault> - </activation> - </profile> - <profile> - <id>prod</id> - <properties> - <profiles.active>prod</profiles.active> - <logging.level>warn</logging.level> - </properties> - </profile> - </profiles> - +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi</artifactId> + <version>3.4.0</version> + + <name>ruoyi</name> + <url>http://www.ruoyi.vip</url> + <description>鑻ヤ緷绠$悊绯荤粺</description> + + <properties> + <ruoyi.version>3.4.0</ruoyi.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <java.version>1.8</java.version> + <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> + <druid.version>1.2.4</druid.version> + <swagger.version>2.9.2</swagger.version> + <pagehelper.boot.version>1.3.0</pagehelper.boot.version> + <fastjson.version>1.2.75</fastjson.version> + <oshi.version>5.6.0</oshi.version> + <jna.version>5.7.0</jna.version> + <commons.io.version>2.5</commons.io.version> + <commons.fileupload.version>1.3.3</commons.fileupload.version> + <commons.collections.version>3.2.2</commons.collections.version> + <poi.version>4.1.2</poi.version> + <velocity.version>1.7</velocity.version> + <jwt.version>0.9.1</jwt.version> + <mybatis-plus.version>3.4.2</mybatis-plus.version> + <hutool.version>5.5.8</hutool.version> + <feign.version>2.2.6.RELEASE</feign.version> + <feign-okhttp.version>11.0</feign-okhttp.version> + </properties> + + <!-- 渚濊禆澹版槑 --> + <dependencyManagement> + <dependencies> + + <!-- SpringBoot鐨勪緷璧栭厤缃�--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>2.2.13.RELEASE</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <!--闃块噷鏁版嵁搴撹繛鎺ユ睜 --> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid-spring-boot-starter</artifactId> + <version>${druid.version}</version> + </dependency> + + <!-- pagehelper 鍒嗛〉鎻掍欢 --> + <dependency> + <groupId>com.github.pagehelper</groupId> + <artifactId>pagehelper-spring-boot-starter</artifactId> + <version>${pagehelper.boot.version}</version> + <exclusions> + <exclusion> + <groupId>org.mybatis</groupId> + <artifactId>mybatis</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- 鑾峰彇绯荤粺淇℃伅 --> + <dependency> + <groupId>com.github.oshi</groupId> + <artifactId>oshi-core</artifactId> + <version>${oshi.version}</version> + </dependency> + + <dependency> + <groupId>net.java.dev.jna</groupId> + <artifactId>jna</artifactId> + <version>${jna.version}</version> + </dependency> + + <dependency> + <groupId>net.java.dev.jna</groupId> + <artifactId>jna-platform</artifactId> + <version>${jna.version}</version> + </dependency> + + <!-- swagger2--> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger2</artifactId> + <version>${swagger.version}</version> + <exclusions> + <exclusion> + <groupId>io.swagger</groupId> + <artifactId>swagger-annotations</artifactId> + </exclusion> + <exclusion> + <groupId>io.swagger</groupId> + <artifactId>swagger-models</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- swagger2-UI--> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger-ui</artifactId> + <version>${swagger.version}</version> + </dependency> + + <!--io甯哥敤宸ュ叿绫� --> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons.io.version}</version> + </dependency> + + <!--鏂囦欢涓婁紶宸ュ叿绫� --> + <dependency> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + <version>${commons.fileupload.version}</version> + </dependency> + + <!-- excel宸ュ叿 --> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi-ooxml</artifactId> + <version>${poi.version}</version> + </dependency> + + <!--velocity浠g爜鐢熸垚浣跨敤妯℃澘 --> + <dependency> + <groupId>org.apache.velocity</groupId> + <artifactId>velocity</artifactId> + <version>${velocity.version}</version> + <exclusions> + <exclusion> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- collections宸ュ叿绫� --> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>${commons.collections.version}</version> + </dependency> + + <!-- 闃块噷JSON瑙f瀽鍣� --> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>${fastjson.version}</version> + </dependency> + + <!--Token鐢熸垚涓庤В鏋�--> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt</artifactId> + <version>${jwt.version}</version> + </dependency> + + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + <version>${mybatis-plus.version}</version> + </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-extension</artifactId> + <version>${mybatis-plus.version}</version> + </dependency> + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>${hutool.version}</version> + </dependency> + + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-openfeign</artifactId> + <version>${feign.version}</version> + </dependency> + + <dependency> + <groupId>io.github.openfeign</groupId> + <artifactId>feign-okhttp</artifactId> + <version>${feign-okhttp.version}</version> + </dependency> + + <!-- 瀹氭椂浠诲姟--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-quartz</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 浠g爜鐢熸垚--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-generator</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 鏍稿績妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-framework</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 绯荤粺妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-system</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- 閫氱敤宸ュ叿--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + <!-- demo妯″潡 --> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-demo</artifactId> + <version>${ruoyi.version}</version> + </dependency> + + </dependencies> + </dependencyManagement> + + <modules> + <module>ruoyi-admin</module> + <module>ruoyi-framework</module> + <module>ruoyi-system</module> + <module>ruoyi-quartz</module> + <module>ruoyi-generator</module> + <module>ruoyi-common</module> + <module>ruoyi-demo</module> + </modules> + <packaging>pom</packaging> + + + <dependencies> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <encoding>${project.build.sourceEncoding}</encoding> + </configuration> + </plugin> + </plugins> + <resources> + <resource> + <!--鎵撳寘璇ョ洰褰曚笅鐨� application.yml --> + <directory>src/main/resources</directory> + <!-- 鍚敤杩囨护 鍗宠璧勬簮涓殑鍙橀噺灏嗕細琚繃婊ゅ櫒涓殑鍊兼浛鎹� --> + <filtering>true</filtering> + </resource> + </resources> + </build> + + <repositories> + <repository> + <id>public</id> + <name>aliyun nexus</name> + <url>http://maven.aliyun.com/nexus/content/groups/public/</url> + <releases> + <enabled>true</enabled> + </releases> + </repository> + </repositories> + + <pluginRepositories> + <pluginRepository> + <id>public</id> + <name>aliyun nexus</name> + <url>http://maven.aliyun.com/nexus/content/groups/public/</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + + <profiles> + <profile> + <id>dev</id> + <properties> + <!-- 鐜鏍囪瘑锛岄渶瑕佷笌閰嶇疆鏂囦欢鐨勫悕绉扮浉瀵瑰簲 --> + <profiles.active>dev</profiles.active> + <logging.level>debug</logging.level> + </properties> + <activation> + <!-- 榛樿鐜 --> + <activeByDefault>true</activeByDefault> + </activation> + </profile> + <profile> + <id>prod</id> + <properties> + <profiles.active>prod</profiles.active> + <logging.level>warn</logging.level> + </properties> + </profile> + </profiles> + </project> \ No newline at end of file diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java index c8f15f5..d0147a2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java @@ -1,5 +1,7 @@ package com.ruoyi.framework.manager.factory; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ip.AddressUtils; @@ -9,7 +11,6 @@ import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.service.ISysLogininforService; import com.ruoyi.system.service.ISysOperLogService; -import eu.bitwalker.useragentutils.UserAgent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +37,7 @@ public static TimerTask recordLogininfor(final String username, final String status, final String message, final Object... args) { - final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + final UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent")); final String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); return new TimerTask() { @@ -53,7 +54,7 @@ // 鎵撳嵃淇℃伅鍒版棩蹇� sys_user_logger.info(s.toString(), args); // 鑾峰彇瀹㈡埛绔搷浣滅郴缁� - String os = userAgent.getOperatingSystem().getName(); + String os = userAgent.getOs().getName(); // 鑾峰彇瀹㈡埛绔祻瑙堝櫒 String browser = userAgent.getBrowser().getName(); // 灏佽瀵硅薄 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java index 23ea862..c55078d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java @@ -2,13 +2,14 @@ import cn.hutool.core.lang.Validator; import cn.hutool.core.util.IdUtil; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ip.AddressUtils; import com.ruoyi.common.utils.ip.IpUtils; -import eu.bitwalker.useragentutils.UserAgent; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -149,12 +150,12 @@ */ public void setUserAgent(LoginUser loginUser) { - UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); + UserAgent userAgent = UserAgentUtil.parse(ServletUtils.getRequest().getHeader("User-Agent")); String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); loginUser.setIpaddr(ip); loginUser.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); loginUser.setBrowser(userAgent.getBrowser().getName()); - loginUser.setOs(userAgent.getOperatingSystem().getName()); + loginUser.setOs(userAgent.getOs().getName()); } /** -- Gitblit v1.9.3