blob: 45958e2934ef02f4b2ba18015a1ec409e02d989a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>User.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Shiro :: Samples :: Spring-Hibernate</a> &gt; <a href="index.source.html" class="el_package">org.apache.shiro.samples.sprhib.model</a> &gt; <span class="el_source">User.java</span></div><h1>User.java</h1><pre class="source lang-java linenums">/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* &quot;License&quot;); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.shiro.samples.sprhib.model;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.Index;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
/**
* Simple class that represents any User domain entity in any application.
*
* &lt;p&gt;Because this class performs its own Realm and Permission checks, and these can happen frequently enough in a
* production application, it is highly recommended that the internal User {@link #getRoles} collection be cached
* in a 2nd-level cache when using JPA and/or Hibernate. The hibernate xml configuration for this sample application
* does in fact do this for your reference (see User.hbm.xml - the 'roles' declaration).&lt;/p&gt;
*/
@Entity
@Table(name=&quot;users&quot;)
@Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
<span class="fc" id="L40">public class User {</span>
private Long id;
private String username;
private String email;
private String password;
<span class="fc" id="L46"> private Set&lt;Role&gt; roles = new HashSet&lt;Role&gt;();</span>
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
<span class="fc" id="L56"> this.id = id;</span>
<span class="fc" id="L57"> }</span>
/**
* Returns the username associated with this user account;
*
* @return the username associated with this user account;
*/
@Basic(optional=false)
@Column(length=100)
@Index(name=&quot;idx_users_username&quot;)
public String getUsername() {
<span class="fc" id="L68"> return username;</span>
}
public void setUsername(String username) {
<span class="fc" id="L72"> this.username = username;</span>
<span class="fc" id="L73"> }</span>
@Basic(optional=false)
@Index(name=&quot;idx_users_email&quot;)
public String getEmail() {
<span class="fc" id="L78"> return email;</span>
}
public void setEmail(String email) {
<span class="fc" id="L82"> this.email = email;</span>
<span class="fc" id="L83"> }</span>
/**
* Returns the password for this user.
*
* @return this user's password
*/
@Basic(optional=false)
@Column(length=255)
public String getPassword() {
<span class="fc" id="L93"> return password;</span>
}
public void setPassword(String password) {
<span class="fc" id="L97"> this.password = password;</span>
<span class="fc" id="L98"> }</span>
@ManyToMany
@JoinTable(name=&quot;users_roles&quot;)
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)
public Set&lt;Role&gt; getRoles() {
<span class="fc" id="L105"> return roles;</span>
}
public void setRoles(Set&lt;Role&gt; roles) {
<span class="fc" id="L109"> this.roles = roles;</span>
<span class="fc" id="L110"> }</span>
}
</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.3.201901230119</span></div></body></html>