- mobile/ 包:移动身份服务适配(verifyPassword/session 快照/授权种子)
- MobileStrongConfiguration:@Qualifier("stringRedisTemplate") 修复双 bean 歧义导致的 /oapi/mobile/* 静默 500
- PasswordVerificationController:POST /oapi/user/verifyPassword(classic app-auth + portal 白名单)
- ApplicationKeyReservation(+Repository)、AppController/Identity/ChannelBind oapi 适配、app_code 守卫配套
- MOB_AUTH_03_schema_DRAFT.sql(8 表 DRAFT)、application_bootstrap.sql 100000 幂等
- 测试:PasswordVerificationControllerTest、ApplicationKeyGateTest、AppControllerActivatedTest、entity/mobile 测试
- 依赖:com.yunhai.platform:yh-mobile-auth:1.1.0-mobauth03-rc.1(Nexus 已有同字节制品)
20 lines
1.5 KiB
Java
20 lines
1.5 KiB
Java
package com.yunhai.userbase.controller.oapi;
|
|
import com.yunhai.platform.mobile.*;
|
|
import com.yunhai.userbase.mobile.MobileIdentityService;
|
|
import org.springframework.beans.factory.ObjectProvider;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Map;
|
|
/** Legacy paths retained; naked phone/account/openid authority is retired. */
|
|
@RestController @RequestMapping("/oapi/channel")
|
|
public class ChannelBindController {
|
|
private final ObjectProvider<MobileIdentityService> provider;
|
|
public ChannelBindController(ObjectProvider<MobileIdentityService> provider){this.provider=provider;}
|
|
private MobileIdentityService service(){MobileIdentityService s=provider.getIfAvailable();AuthFailure.require(s!=null,503,"AUTHORITY_UNAVAILABLE");return s;}
|
|
public static class Bind {public String channelProof,userProof,operationId;}
|
|
public static class Unbind {public String userActionProof,reauthProof,operationId;}
|
|
@GetMapping("/user") public Map<String,Object> user(@RequestHeader("X-YH-Proof") String proof){return service().resolve(proof);}
|
|
@PostMapping("/bind") public Map<String,Object> bind(@RequestBody Bind b){return service().bind(b.channelProof,b.userProof,b.operationId);}
|
|
@PostMapping("/bindByPhone") public void phone(){Contexts.requireCaller("channel.bind.phone");throw new AuthFailure(403,"METHOD_DISABLED");}
|
|
@PostMapping("/unbind") public Map<String,Object> unbind(@RequestBody Unbind b){return service().unbind(b.userActionProof,b.reauthProof,b.operationId);}
|
|
}
|