java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法

我通过JAXB有一个简单的pojo注释类:

public class MyPojo

implements Serializable

{

private final static long serialVersionUID = 1234L;

@XmlElement(name = "Type",required = true,defaultValue = "none")

@NotNull

protected SeismicDataAcquisitionSystemType type;

@XmlElement(name = "IpAddress",required = true)

@NotNull

@Pattern(regexp = "((1?[0-9]?[0-9]|2[0-4]|[0-9]|25[0-5]).){3}(1?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])")

protected String ipAddress;

@XmlElement(name = "SealServerTcpPort",defaultValue = "1477")

@NotNull

protected int sealServerTcpPort;

@XmlElement(name = "PamServerTcpPort",defaultValue = "1485")

@NotNull

protected int pamServerTcpPort;

/**

* Obtient la valeur de la propriété type.

*

* @return

* possible object is

* {@link SeismicDataAcquisitionSystemType }

*

*/

public SeismicDataAcquisitionSystemType getType() {

return type;

}

/**

* Définit la valeur de la propriété type.

*

* @param value

* allowed object is

* {@link SeismicDataAcquisitionSystemType }

*

*/

public void setType(SeismicDataAcquisitionSystemType value) {

this.type = value;

}

public boolean isSetType() {

return (this.type!= null);

}

/**

* Obtient la valeur de la propriété ipAddress.

*

* @return

* possible object is

* {@link String }

*

*/

public String getIpAddress() {

return ipAddress;

}

/**

* Définit la valeur de la propriété ipAddress.

*

* @param value

* allowed object is

* {@link String }

*

*/

public void setIpAddress(String value) {

this.ipAddress = value;

}

public boolean isSetIpAddress() {

return (this.ipAddress!= null);

}

/**

* Obtient la valeur de la propriété sealServerTcpPort.

*

*/

public int getSealServerTcpPort() {

return sealServerTcpPort;

}

/**

* Définit la valeur de la propriété sealServerTcpPort.

*

*/

public void setSealServerTcpPort(int value) {

this.sealServerTcpPort = value;

}

public boolean isSetSealServerTcpPort() {

return true;

}

/**

* Obtient la valeur de la propriété pamServerTcpPort.

*

*/

public int getPamServerTcpPort() {

return pamServerTcpPort;

}

/**

* Définit la valeur de la propriété pamServerTcpPort.

*

*/

public void setPamServerTcpPort(int value) {

this.pamServerTcpPort = value;

}

}

我尝试用默认值初始化我的pojo

像那样

MyPojo myPojo = new MyPojo();

myPojo.getPamServerTcpPort(); // return 0

setDefaultValues(myPojo); // assign attributes with annotated default values

myPojo.getPamServerTcpPort(); // return 1485

我正在使用方法setDefaultValues(MyPojo loMyPojo)尝试programmaticaly,该方法使用java.lang.annotation API和java.lang.reflect API解析类,但我的代码很难看,并且不能使用我自己的枚举默认值

我不得不提到我无法修改原始类MyPojo,因为它本身是通过JAX解析XSD而生成的

任何的想法?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pam_tally2 是一个 Pluggable Authentication Module (PAM) 模块,它用于跟踪和限制用户登录失败的次数。onerr 参数用于指定在遇到错误时应采取的操作。 具体来说,如果 onerr 参数设置为 "fail",那么在遇到错误时 pam_tally2 会返回错误并终止执行。如果 onerr 参数设置为 "succeed",那么在遇到错误时 pam_tally2 会忽略错误并继续执行。 ### 回答2: pam_tally2是一个PAM模块,用于在Linux系统中实施账户登录失败的监控和限制。它具有一个名为onerr的参数,用于指定在遇到错误时执行的动作。 onerr参数有三个可选值:deny、lock和reset。这些值决定了在登录失败后的具体处理方式。 1. 当onerr设置为deny时,如果用户输入的密码错误次数达到了限制值(由pam_tally2模块的faillog命令配置),则拒绝该用户的登录请求。这意味着用户无法继续尝试登录,直到管理员解锁该用户或重置计数器。 2. 当onerr设置为lock时,如果用户输入的密码错误次数达到了限制值,则锁定该用户的账户。这样,用户将无法进行任何登录尝试,直到管理员手动解锁该账户。 3. 当onerr设置为reset时,如果密码错误次数达到了限制值,该用户的登录失败计数器将被重置为0。这意味着用户可以继续尝试登录而不会被限制。通常情况下,重置计数器可能会由一些特定的时间间隔或故障恢复机制触发。 需要注意的是,针对onerr的具体选择取决于系统管理员的需求和安全策略。在配置pam_tally2时,管理员需要权衡安全性和便利性,以确保系统安全并避免用户滥用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值