From b1864a32642d2583650273e7f24dc3d4fc430408 Mon Sep 17 00:00:00 2001 From: tangmingyou <234767776@qq.com> Date: Wed, 13 Apr 2022 23:39:05 +0800 Subject: [PATCH] pwd auth --- .../sopod/soim/client/net/ImNetClient.java | 9 ++- .../net/sopod/soim/core/session/Account.java | 58 ++++++++++++++++--- .../net/sopod/soim/core/session/NetUser.java | 21 ++++--- .../das/user/api/service/UserDasService.java | 17 ++++++ .../soim/das/user/DasUserApplication.java | 2 +- .../soim/das/user/service/HelloService.java | 7 --- .../das/user/service/HelloServiceImpl.java | 27 --------- .../das/user/service/UserDasServiceImpl.java | 35 +++++++++++ .../src/main/resources/application.yml | 8 ++- .../src/main/resources/mapper/UserMapper.xml | 2 - im-entry-http/pom.xml | 35 +++++++++++ .../soim/entry/http/EntryHttpApplication.java | 21 +++++++ .../entry/http/controller/AuthController.java | 32 ++++++++++ .../soim/entry/http/model/ao/PwdAuthAO.java | 18 ++++++ .../http/service/ImEntryMonitorService.java | 13 +++++ .../entry/http/service/ImEntryService.java | 11 ++++ .../src/main/resources/application.yml | 14 +++++ .../soim/entry/handler/HelloHandler.java | 8 ++- .../soim/entry/handler/auth/LoginHandler.java | 36 ++++++++++++ .../entry/server/InboundImMessageHandler.java | 1 - im-entry/src/main/resources/application.yml | 2 +- im-logic-api/im-logic-user-api/pom.xml | 1 - .../auth/model/{ReqLogin.java => ImAuth.java} | 9 ++- .../logic/user/auth/service/AuthService.java | 4 +- .../logic/user/service/UserAuthService.java | 15 +++++ .../user/service/UserAuthServiceImpl.java | 33 +++++++++++ pom.xml | 6 ++ 27 files changed, 376 insertions(+), 69 deletions(-) create mode 100644 im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/UserDasService.java delete mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloService.java delete mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloServiceImpl.java create mode 100644 im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/UserDasServiceImpl.java create mode 100644 im-entry-http/pom.xml create mode 100644 im-entry-http/src/main/java/net/sopod/soim/entry/http/EntryHttpApplication.java create mode 100644 im-entry-http/src/main/java/net/sopod/soim/entry/http/controller/AuthController.java create mode 100644 im-entry-http/src/main/java/net/sopod/soim/entry/http/model/ao/PwdAuthAO.java create mode 100644 im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryMonitorService.java create mode 100644 im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryService.java create mode 100644 im-entry-http/src/main/resources/application.yml create mode 100644 im-entry/src/main/java/net/sopod/soim/entry/handler/auth/LoginHandler.java rename im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/{ReqLogin.java => ImAuth.java} (52%) create mode 100644 im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/service/UserAuthService.java create mode 100644 im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/UserAuthServiceImpl.java diff --git a/im-client/src/main/java/net/sopod/soim/client/net/ImNetClient.java b/im-client/src/main/java/net/sopod/soim/client/net/ImNetClient.java index b959c0d..b2d3440 100644 --- a/im-client/src/main/java/net/sopod/soim/client/net/ImNetClient.java +++ b/im-client/src/main/java/net/sopod/soim/client/net/ImNetClient.java @@ -7,6 +7,7 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; import net.sopod.soim.core.net.ImMessageCodec; +import net.sopod.soim.data.msg.auth.Auth; import net.sopod.soim.data.msg.hello.HelloPB; import java.util.HashMap; @@ -42,15 +43,21 @@ public class ImNetClient { .setId(1) .setStr("手") .build(); + Auth.Login login = Auth.Login.newBuilder() + .setAccount("prometheus") + .setPassword("123456") + .build(); + // ImMessage imMessage = new ImMessage() // .setServiceNo(ProtoMessageManager.getSerialNo(hello.getClass())) // .setSerializeType(SerializeType.json.ordinal()) // //.setBody(Jackson.json().serialize(body).getBytes(StandardCharsets.UTF_8)); // .setBody(hello.toByteArray()); channel.writeAndFlush(hello); + Thread.sleep(4000); + channel.writeAndFlush(login); channel.close(); work.shutdownGracefully(); } - } diff --git a/im-core/src/main/java/net/sopod/soim/core/session/Account.java b/im-core/src/main/java/net/sopod/soim/core/session/Account.java index 95cca27..f5ef8ad 100644 --- a/im-core/src/main/java/net/sopod/soim/core/session/Account.java +++ b/im-core/src/main/java/net/sopod/soim/core/session/Account.java @@ -1,18 +1,23 @@ package net.sopod.soim.core.session; -import io.netty.channel.Channel; -import io.netty.util.AttributeKey; +import com.google.common.base.Preconditions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Account extends NetUser { - public static final AttributeKey ACCOUNT_KEY = AttributeKey.valueOf(Account.class, "ACCOUNT"); + private static final Logger logger = LoggerFactory.getLogger(Account.class); - private long accountId; + // public static final AttributeKey ACCOUNT_KEY = AttributeKey.valueOf(Account.class, "ACCOUNT"); - private String name; + private final long accountId; - public Account(Channel channel) { - super(channel); + private final String name; + + Account(NetUser netUser, long accountId, String name) { + super(netUser.channel.get()); + this.accountId = accountId; + this.name = name; } @Override @@ -20,4 +25,43 @@ public class Account extends NetUser { return true; } + @Override + public void upgradeAccount(Account account) { + logger.warn("account can not upgrade as account again!"); + } + + public long getAccountId() { + return accountId; + } + + public String getName() { + return name; + } + + public static class AccountBuilder { + private long accountId; + private String name; + private NetUser netUser; + public static AccountBuilder newBuilder() { + return new AccountBuilder(); + } + public AccountBuilder setNetUser(NetUser netUser) { + this.netUser = netUser; + return this; + } + public AccountBuilder setAccountId(long accountId) { + this.accountId = accountId; + return this; + } + public AccountBuilder setName(String name) { + this.name = name; + return this; + } + public Account build() { + Preconditions.checkNotNull(netUser); + Preconditions.checkNotNull(name); + return new Account(netUser, accountId, name); + } + } + } diff --git a/im-core/src/main/java/net/sopod/soim/core/session/NetUser.java b/im-core/src/main/java/net/sopod/soim/core/session/NetUser.java index 6337a4a..12db26a 100644 --- a/im-core/src/main/java/net/sopod/soim/core/session/NetUser.java +++ b/im-core/src/main/java/net/sopod/soim/core/session/NetUser.java @@ -4,16 +4,13 @@ import io.netty.channel.Channel; import io.netty.util.AttributeKey; import java.lang.ref.WeakReference; -import java.util.concurrent.atomic.AtomicBoolean; public class NetUser { /** channel 绑定 netUser 对象 */ public static final AttributeKey NET_USER_KEY = AttributeKey.valueOf(NetUser.class, "NET_USER"); - private final WeakReference channel; - - private final AtomicBoolean isActive = new AtomicBoolean(true); + protected final WeakReference channel; public NetUser(Channel channel) { this.channel = new WeakReference<>(channel); @@ -23,17 +20,19 @@ public class NetUser { return false; } - public boolean isActiveChannel() { + public boolean isActive() { Channel chan = this.channel.get(); return chan != null && chan.isActive(); } - public boolean isActive() { - return this.isActive.get(); - } - - public void inactive() { - this.isActive.set(false); + /** + * 登录后设置为账号 + */ + public void upgradeAccount(Account account) { + Channel chan = this.channel.get(); + if (chan != null) { + chan.attr(NET_USER_KEY).set(account); + } } public void write(Object message) { diff --git a/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/UserDasService.java b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/UserDasService.java new file mode 100644 index 0000000..182d7bc --- /dev/null +++ b/im-das-api/im-das-user-api/src/main/java/net/sopod/soim/das/user/api/service/UserDasService.java @@ -0,0 +1,17 @@ +package net.sopod.soim.das.user.api.service; + +import net.sopod.soim.das.user.api.model.entity.ImUser; + +/** + * DasUserService + * + * @author tmy + * @date 2022-04-13 23:28 + */ +public interface UserDasService { + + ImUser getUserById(Long id); + + ImUser getUserByAccount(String account); + +} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/DasUserApplication.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/DasUserApplication.java index f1eea6b..c83028b 100644 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/DasUserApplication.java +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/DasUserApplication.java @@ -11,9 +11,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @author tmy * @date 2022-03-31 22:31 */ -@EnableDubbo(scanBasePackages = {"net.sopod.soim.das.user.service"}) @SpringBootApplication @MapperScan("net.sopod.soim.das.user.dao") +@EnableDubbo(scanBasePackages = {"net.sopod.soim.das.user.service"}) public class DasUserApplication { public static void main(String[] args) { diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloService.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloService.java deleted file mode 100644 index cb70eb8..0000000 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloService.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.sopod.soim.das.user.service; - -public interface HelloService { - - String sayHello(String name); - -} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloServiceImpl.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloServiceImpl.java deleted file mode 100644 index d8f605e..0000000 --- a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/HelloServiceImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.sopod.soim.das.user.service; - -import net.sopod.soim.logic.api.segmentid.core.SegmentIdGenerator; -import org.apache.dubbo.config.annotation.DubboService; -import org.apache.dubbo.rpc.RpcContext; - -import javax.annotation.Resource; - -/** - * HelloServiceImpl - * - * @author tmy - * @date 2022-03-28 16:23 - */ -@DubboService(version = "1.0.0") -public class HelloServiceImpl implements HelloService { - - @Resource - private SegmentIdGenerator segmentIdGenerator; - - @Override - public String sayHello(String name) { - System.out.println("be invoked! client:" + RpcContext.getClientAttachment().getObjectAttachments()); - return "hello "+ name; - } - -} diff --git a/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/UserDasServiceImpl.java b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/UserDasServiceImpl.java new file mode 100644 index 0000000..c010134 --- /dev/null +++ b/im-das/im-das-user/src/main/java/net/sopod/soim/das/user/service/UserDasServiceImpl.java @@ -0,0 +1,35 @@ +package net.sopod.soim.das.user.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import lombok.AllArgsConstructor; +import net.sopod.soim.das.user.api.model.entity.ImUser; +import net.sopod.soim.das.user.api.service.UserDasService; +import net.sopod.soim.das.user.dao.UserMapper; +import org.apache.dubbo.config.annotation.DubboService; + +/** + * UserDasServiceImpl + * + * @author tmy + * @date 2022-04-13 23:30 + */ +@DubboService +@AllArgsConstructor +public class UserDasServiceImpl implements UserDasService { + + private UserMapper userMapper; + + @Override + public ImUser getUserById(Long id) { + return userMapper.selectById(id); + } + + @Override + public ImUser getUserByAccount(String account) { + LambdaQueryWrapper accountQuery = new QueryWrapper().lambda() + .eq(ImUser::getUsername, account); + return userMapper.selectOne(accountQuery); + } + +} diff --git a/im-das/im-das-user/src/main/resources/application.yml b/im-das/im-das-user/src/main/resources/application.yml index 65a9b83..4044be4 100644 --- a/im-das/im-das-user/src/main/resources/application.yml +++ b/im-das/im-das-user/src/main/resources/application.yml @@ -1,8 +1,12 @@ +spring: + application: + name: im-das-user dubbo: application: - name: das-user + name: ${spring.application.name} registry: address: nacos://124.222.131.236:3848 + group: im-user protocol: port: 3011 @@ -10,4 +14,4 @@ mybatis-plus: mapper-locations: classpath:mapper/*.xml im-segment-id: - enabled: true \ No newline at end of file + enabled: true diff --git a/im-das/im-das-user/src/main/resources/mapper/UserMapper.xml b/im-das/im-das-user/src/main/resources/mapper/UserMapper.xml index de938ad..b13cb73 100644 --- a/im-das/im-das-user/src/main/resources/mapper/UserMapper.xml +++ b/im-das/im-das-user/src/main/resources/mapper/UserMapper.xml @@ -2,6 +2,4 @@ - - \ No newline at end of file diff --git a/im-entry-http/pom.xml b/im-entry-http/pom.xml new file mode 100644 index 0000000..eac80a4 --- /dev/null +++ b/im-entry-http/pom.xml @@ -0,0 +1,35 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-entry-http + 提供im-entry监控,节点负载分配,http登录服务,后面用dubbo http网关替代 + + + + net.sopod + im-logic-user-api + ${soim.version} + + + org.springframework.boot + spring-boot-starter-web + + + org.apache.dubbo + dubbo-spring-boot-starter + + + org.apache.dubbo + dubbo-registry-nacos + + + + \ No newline at end of file diff --git a/im-entry-http/src/main/java/net/sopod/soim/entry/http/EntryHttpApplication.java b/im-entry-http/src/main/java/net/sopod/soim/entry/http/EntryHttpApplication.java new file mode 100644 index 0000000..7653fd5 --- /dev/null +++ b/im-entry-http/src/main/java/net/sopod/soim/entry/http/EntryHttpApplication.java @@ -0,0 +1,21 @@ +package net.sopod.soim.entry.http; + +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * EntryHttpApplication + * + * @author tmy + * @date 2022-04-13 23:08 + */ +@EnableDubbo +@SpringBootApplication +public class EntryHttpApplication { + + public static void main(String[] args) { + SpringApplication.run(EntryHttpApplication.class, args); + } + +} diff --git a/im-entry-http/src/main/java/net/sopod/soim/entry/http/controller/AuthController.java b/im-entry-http/src/main/java/net/sopod/soim/entry/http/controller/AuthController.java new file mode 100644 index 0000000..326c559 --- /dev/null +++ b/im-entry-http/src/main/java/net/sopod/soim/entry/http/controller/AuthController.java @@ -0,0 +1,32 @@ +package net.sopod.soim.entry.http.controller; + +import net.sopod.soim.entry.http.model.ao.PwdAuthAO; +import net.sopod.soim.logic.user.auth.model.ImAuth; +import net.sopod.soim.logic.user.service.UserAuthService; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * AuthController + * + * @author tmy + * @date 2022-04-13 23:09 + */ +@RestController +@RequestMapping("/auth") +public class AuthController { + + @DubboReference + private UserAuthService userAuthService; + + @PostMapping("/pwdAuth") + public ImAuth pwdAuth(@RequestBody PwdAuthAO authAO) { + ImAuth imAuth = userAuthService.pwdAuth(authAO.getAccount(), authAO.getPassword()); + String accessToken = imAuth.getAccessToken(); + return imAuth; + } + +} diff --git a/im-entry-http/src/main/java/net/sopod/soim/entry/http/model/ao/PwdAuthAO.java b/im-entry-http/src/main/java/net/sopod/soim/entry/http/model/ao/PwdAuthAO.java new file mode 100644 index 0000000..2cc2e3d --- /dev/null +++ b/im-entry-http/src/main/java/net/sopod/soim/entry/http/model/ao/PwdAuthAO.java @@ -0,0 +1,18 @@ +package net.sopod.soim.entry.http.model.ao; + +import lombok.Data; + +/** + * PwdAuthAO + * + * @author tmy + * @date 2022-04-13 23:14 + */ +@Data +public class PwdAuthAO { + + private String account; + + private String password; + +} diff --git a/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryMonitorService.java b/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryMonitorService.java new file mode 100644 index 0000000..79f0954 --- /dev/null +++ b/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryMonitorService.java @@ -0,0 +1,13 @@ +package net.sopod.soim.entry.http.service; + +/** + * ImMonitorService + * + * @author tmy + * @date 2022-04-13 23:27 + */ +public class ImEntryMonitorService { + + + +} diff --git a/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryService.java b/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryService.java new file mode 100644 index 0000000..66d3249 --- /dev/null +++ b/im-entry-http/src/main/java/net/sopod/soim/entry/http/service/ImEntryService.java @@ -0,0 +1,11 @@ +package net.sopod.soim.entry.http.service; + +/** + * ImEntryService + * + * @author tmy + * @date 2022-04-13 23:27 + */ +public class ImEntryService { + +} diff --git a/im-entry-http/src/main/resources/application.yml b/im-entry-http/src/main/resources/application.yml new file mode 100644 index 0000000..7808715 --- /dev/null +++ b/im-entry-http/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: im-entry-http +dubbo: + application: + name: ${spring.application.name} + registry: + address: nacos://124.222.131.236:3848 + group: so-im + provider: + register: false # 不向注册中心注册服务 + protocol: injvm # 服务提供只供jvm内部使用, 不暴露在外面 (不启动dubbo provider服务) + consumer: + check: false diff --git a/im-entry/src/main/java/net/sopod/soim/entry/handler/HelloHandler.java b/im-entry/src/main/java/net/sopod/soim/entry/handler/HelloHandler.java index 0574d91..86c30dd 100644 --- a/im-entry/src/main/java/net/sopod/soim/entry/handler/HelloHandler.java +++ b/im-entry/src/main/java/net/sopod/soim/entry/handler/HelloHandler.java @@ -1,7 +1,9 @@ package net.sopod.soim.entry.handler; import com.google.protobuf.MessageLite; +import net.sopod.soim.core.handler.AccountMessageHandler; import net.sopod.soim.core.handler.NetUserMessageHandler; +import net.sopod.soim.core.session.Account; import net.sopod.soim.core.session.NetUser; import net.sopod.soim.data.msg.hello.HelloPB; import net.sopod.soim.entry.delay.NetUserDelayTaskManager; @@ -25,7 +27,7 @@ import java.util.concurrent.TimeUnit; * @date 2022-04-10 19:19 */ @Service -public class HelloHandler extends NetUserMessageHandler { +public class HelloHandler extends AccountMessageHandler { private static final Logger logger = LoggerFactory.getLogger(HelloHandler.class); @@ -36,7 +38,7 @@ public class HelloHandler extends NetUserMessageHandler { private SegmentIdGenerator segmentIdGenerator; @Override - public MessageLite handle(NetUser netUser, HelloPB.Hello msg) { + public MessageLite handle(Account account, HelloPB.Hello msg) { logger.info("get hello message: {}", segmentIdGenerator.nextId("im-entry-hello")); logger.info("msg={}, {}", msg.getId(), msg.getStr()); CompletableFuture hi = userService.sayHi("黄绿"); @@ -48,7 +50,7 @@ public class HelloHandler extends NetUserMessageHandler { RpcContext.getServiceContext().getCompletableFuture().whenComplete((res, err) -> { logger.info("async sayHello, {}", res); }); - NetUserDelayTaskManager.addTask(netUser, msg, 5, TimeUnit.SECONDS); + NetUserDelayTaskManager.addTask(account, msg, 5, TimeUnit.SECONDS); return null; } diff --git a/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/LoginHandler.java b/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/LoginHandler.java new file mode 100644 index 0000000..f1619f6 --- /dev/null +++ b/im-entry/src/main/java/net/sopod/soim/entry/handler/auth/LoginHandler.java @@ -0,0 +1,36 @@ +package net.sopod.soim.entry.handler.auth; + +import com.google.protobuf.MessageLite; +import net.sopod.soim.core.handler.NetUserMessageHandler; +import net.sopod.soim.core.session.Account; +import net.sopod.soim.core.session.NetUser; +import net.sopod.soim.data.msg.auth.Auth; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * LoginHandler + * + * @author tmy + * @date 2022-04-13 22:20 + */ +@Service +public class LoginHandler extends NetUserMessageHandler { + + private static final Logger logger = LoggerFactory.getLogger(LoginHandler.class); + + @Override + public MessageLite handle(NetUser netUser, Auth.Login msg) { + logger.info("auth login: {}, {}", msg.getAccount(), msg.getPassword()); + Account account = Account.AccountBuilder.newBuilder() + .setNetUser(netUser) + .setAccountId(1L) + .setName(msg.getAccount()) + .build(); + // 注册为账号添加到连接 + netUser.upgradeAccount(account); + return null; + } + +} diff --git a/im-entry/src/main/java/net/sopod/soim/entry/server/InboundImMessageHandler.java b/im-entry/src/main/java/net/sopod/soim/entry/server/InboundImMessageHandler.java index fc7b41c..0ea4ed8 100644 --- a/im-entry/src/main/java/net/sopod/soim/entry/server/InboundImMessageHandler.java +++ b/im-entry/src/main/java/net/sopod/soim/entry/server/InboundImMessageHandler.java @@ -39,7 +39,6 @@ public class InboundImMessageHandler extends SimpleChannelInboundHandler netUser = ctx.channel().attr(NetUser.NET_USER_KEY); - netUser.get().inactive(); ctx.fireChannelInactive(); } diff --git a/im-entry/src/main/resources/application.yml b/im-entry/src/main/resources/application.yml index f0f3fc1..82c7ea6 100644 --- a/im-entry/src/main/resources/application.yml +++ b/im-entry/src/main/resources/application.yml @@ -9,6 +9,6 @@ dubbo: group: so-im provider: register: false # 不向注册中心注册服务 - protocol: injvm # 服务提供只供jvm内部使用, 不暴露在外面 + protocol: injvm # 服务提供只供jvm内部使用, 不暴露在外面 (不启动dubbo provider服务) consumer: check: false diff --git a/im-logic-api/im-logic-user-api/pom.xml b/im-logic-api/im-logic-user-api/pom.xml index a06d0ac..a2d9366 100644 --- a/im-logic-api/im-logic-user-api/pom.xml +++ b/im-logic-api/im-logic-user-api/pom.xml @@ -12,5 +12,4 @@ im-logic-user-api - \ No newline at end of file diff --git a/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ReqLogin.java b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ImAuth.java similarity index 52% rename from im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ReqLogin.java rename to im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ImAuth.java index 1a9349e..01e7fca 100644 --- a/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ReqLogin.java +++ b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/model/ImAuth.java @@ -1,15 +1,18 @@ package net.sopod.soim.logic.user.auth.model; +import lombok.Data; + /** * LoginParam * * @author tmy * @date 2022-03-31 21:06 */ -public class ReqLogin { +@Data +public class ImAuth { - private String username; + private String accessToken; - private String password; + private long expireMs; } diff --git a/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/service/AuthService.java b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/service/AuthService.java index 8953309..621a31e 100644 --- a/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/service/AuthService.java +++ b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/auth/service/AuthService.java @@ -1,6 +1,6 @@ package net.sopod.soim.logic.user.auth.service; -import net.sopod.soim.logic.user.auth.model.ReqLogin; +import net.sopod.soim.logic.user.auth.model.ImAuth; /** * AuthService @@ -13,6 +13,6 @@ public interface AuthService { /** * 登录请求 */ - void login(ReqLogin reqLogin); + void login(ImAuth imAuth); } diff --git a/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/service/UserAuthService.java b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/service/UserAuthService.java new file mode 100644 index 0000000..1023b47 --- /dev/null +++ b/im-logic-api/im-logic-user-api/src/main/java/net/sopod/soim/logic/user/service/UserAuthService.java @@ -0,0 +1,15 @@ +package net.sopod.soim.logic.user.service; + +import net.sopod.soim.logic.user.auth.model.ImAuth; + +/** + * AuthService + * + * @author tmy + * @date 2022-04-13 22:55 + */ +public interface UserAuthService { + + ImAuth pwdAuth(String account, String password); + +} diff --git a/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/UserAuthServiceImpl.java b/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/UserAuthServiceImpl.java new file mode 100644 index 0000000..d9aa9f7 --- /dev/null +++ b/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/service/UserAuthServiceImpl.java @@ -0,0 +1,33 @@ +package net.sopod.soim.logic.user.service; + +import net.sopod.soim.das.user.api.model.entity.ImUser; +import net.sopod.soim.das.user.api.service.UserDasService; +import net.sopod.soim.logic.user.auth.model.ImAuth; +import org.apache.dubbo.config.annotation.DubboReference; +import org.apache.dubbo.config.annotation.DubboService; + +import java.util.concurrent.CompletableFuture; + +/** + * AuthServiceImpl + * + * @author tmy + * @date 2022-04-13 22:57 + */ +@DubboService +public class UserAuthServiceImpl implements UserAuthService { + + @DubboReference + private UserDasService userDasService; + + @Override + public ImAuth pwdAuth(String account, String password) { + ImUser imUser = userDasService.getUserByAccount(account); + if (imUser == null) { + return null; + } + // TODO status, + return null; + } + +} diff --git a/pom.xml b/pom.xml index 2e4cc26..8b233e6 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,7 @@ im-das-api im-logic-api/im-segment-id-api im-logic/im-segment-id + im-entry-http @@ -124,6 +125,11 @@ spring-boot-starter ${spring-boot.version} + + org.springframework.boot + spring-boot-starter-web + ${spring-boot.version} + org.springframework.boot spring-boot-autoconfigure