小编Fir*_*mir的帖子

分布式Spring应用程序中的身份验证和会话管理

我正在致力于将单模块 Spring Web 应用程序迁移到基于 JMS 的模块化架构中。该链接包含当前应用程序的结构和我的目标。

我将使用基于 CAS 的 SSO 服务器来执行身份验证。技术堆栈将是 spring-boot、Apache Camel、ActiveMQ 和 spring-security/apache-shiro。

例如,我将有一个库存应用程序、财务应用程序和 CAS 应用程序(SSO 服务器)。在某些地方,我必须管理一个集中的会话存储,它将保存当前的用户 ID 及其首选项。

使用案例:

  1. 用户登录 CAS SSO 并进入库存模块。库存模块将获取当前用户 ID 及其偏好(来自中央会话存储?),并且将启动销售交易。
  2. 库存完成工作后,它通过 Apache Camel 向财务部门发送一条 JMS 消息以发布会计条目。
  3. 财务应用程序从会话中获取当前用户 ID 和偏好并完成帐户过帐。

如何为上述场景创建一个公共会话存储(几乎附加到 SSO 服务器)(Spring-Session 将有所帮助?),以及如何让每个应用程序知道谁是执行此事务的实际用户。

spring cas jms spring-security shiro

3
推荐指数
1
解决办法
1485
查看次数

jqGrid获取了json,但是有空行且没有数据

JSON由Spring 3 MVC @ResponseBody生成

{
    "total": "1",
    "page": "1",
    "records": "2",
    "rows": [
        {
            "id": "1",
            "cell": {
                "accountId": 1,
                "userId": 1,
                "transactionId": 6,
                "subCatId": 0,
                "accountName": "Credit Card",
                "remarks": "Movie Hall Pass",
                "amount": 250.0,
                "transactionDate": "2011-03-16",
                "subCatName": "Entertainment"
            }
        },
        {
            "id": "2",
            "cell": {
                "accountId": 2,
                "userId": 1,
                "transactionId": 7,
                "subCatId": 1,
                "accountName": "Savings Bank",
                "remarks": "Part at Besand Nagar",
                "amount": 5000.0,
                "transactionDate": "2011-03-16",
                "subCatName": "Dine Out"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

JQGrid初始化代码:

$("#transactionLogTable").jqGrid({
                url: '/et/transaction/getTransactions?dateValue=03%2F16%2F2011',
                datatype: "json",
                loadError: …
Run Code Online (Sandbox Code Playgroud)

model-view-controller jquery spring json jqgrid

1
推荐指数
1
解决办法
6883
查看次数

整数枚举和拆箱

public class Document{
    private Integer status;

    // get()/set()
}
Run Code Online (Sandbox Code Playgroud)

然后是一个枚举:

public enum DocumentStatusEnum {

        ACTIVE_DOCUMENT(2060),CANCELLED_DOCUMENT(2061),DRAFT_DOCUMENT(2062),PROCESSED_DOCUMENT(2063);

        private final Integer value;

        private DocumentStatusEnum(Integer value){
            this.value = value;
        }
        public Integer getValue(){
            return value;
        }
    }
Run Code Online (Sandbox Code Playgroud)

在一个方法我使用上面的方法如下:

Document d = new Document();
d.setStatus(2063);
if (d.getStatus() == DocumentStatusEnum.PROCESSED_DOCUMENT.getValue()){
{
       // print true;
    }
    else{
       // print false;
    }
Run Code Online (Sandbox Code Playgroud)

我在这里说实话.看起来不错.在同样的方法中,经过几行,我这样做:

d.setStatus(2060)
if (d.getStatus() == DocumentStatusEnum.ACTIVE_DOCUMENT.getValue()){
   // print true
}
else{
   // print false

}
Run Code Online (Sandbox Code Playgroud)

我弄错了.我研究并发现了一些关于Java中缓存和装箱功能的东西.我将枚举定义转换为:

public enum DocumentStatusEnum {

    ACTIVE_DOCUMENT(2060),CANCELLED_DOCUMENT(2061),DRAFT_DOCUMENT(2062),PROCESSED_DOCUMENT(2063);

    private final int value;

    private …
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
656
查看次数

奇怪的逗号附加@ModelAttribute的问题

平台:Spring 3.1.2,Tomcat 7.0.30

从3.0升级到Spring 3.1后,问题就开始了

我有一个正常的弹簧启用形式:

<c:url value='/healthcare/insurance/policy/save' var="url" />
<form:form commandName="insurancePolicy" action="${url }" method="POST" cssClass="form-horizontal">
  <div class="module">
      <div class="header">
          <strong><spring:message code="insurance.policy.view.formbox" /> </strong>
      </div>
      <div class="module-content row-fluid">
          <div class="span4">

              <div class="control-group">
                  <label class="control-label"><spring:message code="insurance.policy.view.policyId" /></label>
                  <div class="controls">
                      <form:input path="policyId" cssClass="span10" readonly="true" />
                  </div>
              </div>

              <div class="control-group">
                  <label class="control-label"><spring:message code="insurance.policy.view.tpaId" /></label>
                  <div class="controls">
                      <form:select path="tpaId" items="${tpas }" itemLabel="tpaName" itemValue="tpaId" cssClass="span10" />
                  </div>
              </div>
Run Code Online (Sandbox Code Playgroud)

等等.

我提交的方式是:

function save(){
    $("#insurancePolicy").submit();

}
Run Code Online (Sandbox Code Playgroud)

我捕获的方式是通过Controller,它位于一个抽象类中,如下所示:

public abstract class AbstractCrudViewController<T, PK extends Number, META extends T> …
Run Code Online (Sandbox Code Playgroud)

jquery spring-mvc

0
推荐指数
1
解决办法
4456
查看次数